java文件上传和拦截器

java文件上传和拦截器
java文件上传和拦截器

1 文件上传

(1)需要的包:Common-fileUpload组件和Commons-IO组件包

(2)文件标签:

//红色为必须

(3)在Action中,若文件名称为xxx。则必须有三个属性:setXxx()、setXxxFileName()、setXxxContentType()。通常我们在Action中定义三个变量:xxx、xxxFileName 、xxxContentType。

根据需要,还可以定义保存文件的名称属性targetFileName和保存文件的路径属性dir (4)代码如下:

products_showById.jsp文件修改如下:

enctype="multipart/form-data">

图片

ProductManageAction.java文件修改如下:

//文件上传相关参数

private File upload; //上传的文件

private String uploadFileName; //上传的文件名称

private String uploadContentType; //上传的文件类型

private String dir;//保存文件的路径

private String targetFileName; //保存文件名称

@SuppressWarnings("deprecation")

public String update(){

。。。。。。。

//上传图片...

String

realPath=ServletActionContext.getRequest().getRealPath("/upload");

String targetDirectory=realPath;

this.targetFileName=this.getUploadFileName();

this.setDir(targetDirectory+"\\"+this.targetFileName);

System.out.println("dir="+this.getDir());

p.setStructrue(this.getDir());

System.out.println("dir="+p.getStructrue());

File target=new File(targetDirectory,this.targetFileName);

try {

FileUtils.copyFile(upload, target); 用到commons-IO包} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

。。。。。。。。。

}

struts.xml配置文件修改如下:

class="com.action.ProductManageAction" method="{1}">

name="allowedTypes">image/bmp,image/png,image/jpg,image/gif,applicati on/vnd.ms-excel

200000

。。。。。

2 拦截器

(1)作用:动态拦截Action对象。也就是在执行Action处理用户请求之前或之后,执行拦截器来进行某些操作,例如判断用户身份是否合法但呢个。

(2)用途:文件上传和下载,国际化,转换器,和数据校验等

(3)理解:

OOP:封装一个对象的属性和方法。但对于多个对象的公共属性和行为则无能为力。例如日志功能。

AOP:拦截器是AOP思想的体现。就是将这些公共行为封装起来,减少重复代码等。

(4) 使用步骤;

(a) 在struts.xml配置文件中增加拦截器定义和在Action中声明拦截器:必须引用默认的拦截器

//定义自定义拦截器

//定义拦截器参数

参数A的初始化值

参数B的初始化值

//引用默认拦截器

//引用自定义拦截器

(b) 建立自定义拦截器类

(c) 建立Action,

注意:在配置文件中,一旦为包指定了默认的拦截器,该拦截器会对包中所有Action 起作用。如果包中的Action显式指定了拦截器,那么默认的拦截器就会失去作用。

初学者注意:Struts2默认的拦截器defalutStack包含了许多重要的功能,在Action定义自己的拦截器的同时,一定要注意要同时显式引用系统默认的拦截器defalutStack。

(5)拦截器栈:是由多个拦截器组成的一个拦截器组,进行一系列公共功能的拦截处理。定义如下:

//定义多个拦截器

//拦截器1

//拦截器2

//拦截器3

//拦截器4

// 定义一个拦截器栈

//引用拦截器1

//引用拦截器2

//引用拦截器3

//引用拦截器4

//定义拦截器参数

参数A的初始化值

参数B的初始化值

(6)struts2自带的拦截器有:

异常拦截器 name=”exception”

国际化资源拦截器 name=”i18n”

模型驱动拦截器 name=”model-driven”

文件上传拦截器 name=”fileUpload”

类型异常转换拦截器 name=”conversionError”

输入校验拦截器 name=”validation”

input,back,cancel,browse

(7)自定义拦截器的实现

格式:

public class simpleInterceptor extends AbstractInterceptor{

public String intercept(ActionInvocation args0)

throws Exception{ //获取被拦截的Action的引用

arg0.getAction();

//执行Action或执行下一个拦截器

String result=arg0.invoke();

//Action执行完毕

}

}

(8)拦截器方法的过滤

定义:默认情况下,会拦截Action实现类中的所有方法。但某些时候,只需要拦截Action中一个或多个方法,某些Action不拦截。这就是拦截器的过滤

格式:Struts2提供了MethodFilterInterceptor类来完成该功能。有两个参数includeMethods和excludeMethods。我们需要在struts.xml配置文件中设置方法过滤例如:

方法名

方法名

(9)权限拦截器

原理:特定的包范围内,定义一个权限拦截器,该拦截器的作用是验证当前用户请求中Session中的权限标识。如果为合法用户,则继续执行相关的Action业务逻辑;若为非法用户,则拦截Action的执行,转去用户登录界面,提示用户还没有登录。

例如:

public class checkInterceptor extends AbstractInterceptor{

public String intercept(ActionInvocation arg0)throws Exception{ //获得Action的上下文

ActionContext ctx=arg0.getInvocationContext();

//获得session

Map session=ctx.getSession();

//获得session中的user标识

String user=(String)session.get(“user”);

//如果标识合法,则执行Action的execute方法

if(user!=null && user.equals(“sunlu”)){

return arg0.invoke();

}

else {

//如果不合法,则拦截Action执行,跳转到登录界面

return “login”;

}

}

}

配置:设置成包的默认拦截器,这样包中的Action配置中就不用重复引用该拦截器了。struts.xml配置文件片段如下:

Java多方式实现文件上传

在Struts 2中实现文件上传 前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题,所以今天我们就来讨论一下这个问题。 实现原理 Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。 具体实现 前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts 作为框架的。以下是例子所依赖类包的列表: 清单1 依赖类包的列表 首先,创建文件上传页面FileUpload.jsp,内容如下: <% @ page language = " java " contentType = " text/html; charset=utf-8 " pageEncodi ng = " utf-8 " %> <% @ taglib prefix = " s " uri = " /struts-tags " %> Struts 2 File Upload

PHP 文件上传进度条实现程序

PHP 文件上传进度条实现程序 在php中要实现上传进度条有很多方法,如ajax是现在的主流或利用iframe来实现,现在我们来介绍php的apc与uploadprogress实现文件上传进度条效果。 目前我知道的方法有两种,一种是使用PHP的创始人Rasmus Lerdorf 写的APC扩展模块来实现(https://www.360docs.net/doc/a35342998.html,/package/apc),另外一种方法是使用PECL扩展模块 uploadprogress实现(https://www.360docs.net/doc/a35342998.html,/package/uploadprogress)我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。 APC实现方法: 安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明 配置php.ini,设置参数apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面有说明 代码范例: 代码如下复制代码if ($_SERVER['REQUEST_METHOD'] == 'POST') { //上传请求 $status = apc_fetch('upload_' . $_POST['APC_UPLOAD_PROGRESS']); $status['done'] = 1; echo json_encode($status); //输出给用户端页面里的ajax调用,相关文档请自己寻找exit; } elseif (isset($_GET['progress_key'])) { //读取上传进度 $status = apc_fetch('upload_'.$_GET['progress_key']); echo json_encode($status);

java开发实习心得体会

四川实习心得体会 计算本一班01210251y33 张焕炎 大四初始,我已经闻到了离别的气息,在这即将远离大学时代的时刻,才真正懂得回眸的意义。想想走过的路,想想现在的路,想想来时的路,不知道未来能否成功,既然选择了远方,就注定要风雨兼程! 在四川短暂的一个月里,我从基础入手,强化了java语言编程,学习了java 语言编程和编程概念与技巧。时间很短,但成长很快,无论是理论知识还是动手实践能力都得到了大幅度的提高。而将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用! 实践过程中,开发一个简单的小项目,包括如何将Java的思想运用到实际系统的详细设计之中。首先要将系统要实现的功能分为几大模块,然后每个分别完成,在此过程中使我加深了对Java的理解,以及如何进行工作的划分,与此同时熟练掌握Java语言的编辑,编译,调试程序,并将算法转变为程序实现。我将设计过程分为逻辑设计和详细设计两个步骤实现.逻辑设计指的是,对问题描述中涉及的对象定义相应的数据类型,定义主程序模块和各抽象数据类型及其代码;详细设计则为定义相应的模块的实现并写出各模块的实现代码。然后在连接数据库,编码测试,最后确定完成。 通过这次实践,使我灵活应用所学知识,独立完成问题分析,结合Java理论知识,编写程序解决指定问题。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力。同时在这次实践中,培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。然而,在这次实践中,我觉得一个人完成一个项目是多么的艰难,在一些大型的项目中,团队合作是多么重要。尽管这次只是一个小项目,却也要耗费大量的精力。我学习了知识,也培养了实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。学习的过程中不可避免的遇到问题,这些问题有的只是一个符号错了,一个括号少了,这类的问题在他的文档,或者一般的网站上就能够找到,尤其是初学者的问题,不会是很难的问题,在你之前已经无数人问过了,不要害怕提问,但

Java实现视频网站的视频上传及视频播放功能

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash 制作的播放器来播放该文件.项目中用制作的播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。?? ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。 1.能支持的格式 ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 2.不能支持的格式 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),可以先用别的工具(mencoder)转换为avi(ffmpeg 能解析的)格式. 实例是将上传视频转码为flv格式,该格式ffmpeg支持,所以我们实例中需要ffmpeg视频处理工具. 数据库 实例所需要的数据库脚本 drop database if exists db_mediaplayer;create database db_mediaplayer;use db_mediaplayer; create table tb_media( id int not null primary key auto_increment comment '主键' , title varchar(50) not null comment '视频名称' , src varchar(200) not null comment '视频存放地址' , picture varchar(200) not null comment '视频截图' , descript varchar(400) comment '视频描述' , uptime varchar(40) comment '上传时间' );

【心得体会范文】java实验心得体会精选

java实验心得体会精选 java实验心得体会一:软件专业java实习心得 大学生活临近了尾声,这短短的三年,却是我的人生中弥足珍贵 的时光。在这三年里,我从一个莽撞少年成长为一名合格的大学生, 用脱胎换骨来形容并不为过。总结过去可以拨开时间的迷雾,清晰的 回首所走过的路,从而为将来的人生旅程准备一些经验和教训。 大学生活主线是学习。大学学习是迥然不同于以往的一种新形式,它赋予了学习者更大的自主性和更广阔的思维空间,同时也对学习者 提出了更高的要求。在这种半开放式的教学模式下,要求学习者必须 有明确的学习目的,有更强的选择辨别能力和更强的自学能力。对于 这个方面,我应该感谢大学这四年的学习生涯,在这期间的历次挫折 与成功,使我真正知道了怎样进行自我学习,怎样有选择有目的的学习,随之而来的是自己自学能力和学习效率的提高。而学习之外的课 外科技活动的参与,同时也是对所学知识的一种巩固和加强,它不仅 提高了我的动手能力,拓宽了我的知识面,而且在不断的探索过程中,也促使自己学习更多更新的东西,这更进一步丰富了自己的理论知识。 通过此次实习,让我学到了很多课堂上更本学不到的东西,仿佛 自己一下子成熟了,懂得了做人做事的道理,也懂得了学习的意义, 时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的, 只要勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的 重任,看清了自己的人生方向,也让我认识到了文秘工作应支持仔细 认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到 什么事都要总代表地去思考,多听别人的建议,不要太过急燥,要对 自己所做事去负责,不要轻易的去承诺,承诺了就要努力去兑现。单 位也培养了我的实际动手能力,增加了实际的操作经验,对实际的文 秘工作的有了一个新的开始,更好地为我们今后的工作积累经验。

Java文件上传类FileUploadUtil.java代码+注释

? 一个通用的Java文件上传类,支持上传图片,支持生成缩略图,设置最大上传文件字节数,不设置时默认10M,可接收来自表单的数据,当有多个文件域时, 只上传有文件的,忽略其他不是文件域的所有表单信息,支持用户对上传文件大小, 字节进行设置,本上传类可过滤掉以下文件类型:".exe", ".com", ".cgi", ".asp", ".php", ".jsp"等,你可自已添加过滤的文件后缀,上传文件时如果没有上传目录,则自动创建它。。。 ? package com.gootrip.util; import java.io.File; import java.util.*; import https://www.360docs.net/doc/a35342998.html,mons.fileupload.*; import javax.servlet.http.HttpServletRequest; import java.util.regex.Pattern; import java.io.IOException; import https://www.360docs.net/doc/a35342998.html,mons.fileupload.servlet.ServletFileUpload; import https://www.360docs.net/doc/a35342998.html,mons.fileupload.disk.DiskFileItemFactory; import java.util.regex.Matcher; /** * TODO 要更改此生成的类型注释的模板,请转至 * 窗口-首选项- Java -代码样式-代码模板 */ public class FileUploadUtil {

//当上传文件超过限制时设定的临时文件位置,注意是绝对路径 private String tempPath = null; //文件上传目标目录,注意是绝对路径 private String dstPath = null; //新文件名称,不设置时默认为原文件名 private String newFileName = null; //获取的上传请求 private HttpServletRequest fileuploadReq = null; //设置最多只允许在内存中存储的数据,单位:字节,这个参数不要设置太大 private int sizeThreshold = 4096; //设置允许用户上传文件大小,单位:字节 //共10M private long sizeMax = 10485760; //图片文件序号 private int picSeqNo = 1; private boolean isSmallPic = false; public FileUploadUtil(){ } public FileUploadUtil(String tempPath, String destinationPath){ this.tempPath = tempPath; this.dstPath = destinationPath; }

JAVA中几种上传方法介绍、比较

java中几种上传方法介绍、比较 1引言 一个网站总是不可避免的要和用户进行信息的交互,能直接使用 request.getParameter()来取得。至于所使用的方法有很多种,比如:jspsmart 公司的jspsmartupload组件,O`Rrilly公司的cos组件,Jakarta Apache公司的commonsFileUpload组件,JavaZoom的uploadbean组件,还有Struts组件中自带的org.apache.struts.upload类工具等等。下面就针对其中的三种解决方案(jspsmartupload、O`Reilly-cos、struts.upload)做一个简单的介绍和对比。2O`Rrilly-Cos Cos组件是O`Rrilly公司开发的,该组件免费,不定期增加新功能,开源。 图1O`Rrilly-Cos 在Cos组件中,MultipartRequest类主要负责文件上传的处理。MultipartRequest有8个构造函数: 1.Public MultipartRequest(HttpServletRequest request,String saveDirectory,)throws IOException 2.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize)throws IOException 3.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,FileRenamePolicy policy)throws IOException倘若是从窗体传送一般的简单输入类型(例如:text、password、radio、checkbox、select等等)的信息到服务器端时,只要使用 application/x-www-form-urlencoded的编码方式用session传递就可以了。但是当涉及到和用户之间的文件交换(包括上传和下载)时,就不是那么简单了。在上传文件到服务器时,必须要使用multipart/form-data的编码方式,并且不

JAVAWEB实训心得体会

jsp+servlet+mysql 论坛项目实训总结 实训人:程路峰学号: 11103303 通过为期 10 天的实训,我学习了很多关于 java web 的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。最终,能顺利完成实训的任务也很高兴。 在实训生活中,我了解开发项目的需求、设计、实现、确认以及维护等活动整个过程,让自己开始懂得一点软件工程的知识点。 首先,了解需求分析的重要性,比如:需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求, 从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个 for linux 的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发 for windows 的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。所以,需求分析是成功的第一步,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。 然后呢?确实客户的需求的以后我们要做什么呢,那当然是设计和分析。此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 接下来是代码实现,此阶段是将网站项目设计的结果转换成计算机可运行的程序代码,我们这个项目为 4 个模块,1.界面,2.逻辑层。3 实现层。4.数据库及使用说明文档,分别为4 个小组成员完成。这阶段我学到很多编程的思想,如: 分层思想、mvc、三大架构的整合、dao 的编写。 编号程序之后就是软件测试了,此时在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。由于时间有限,我们测试是简单的使用一下每一个功能。 在编写代码时,由于自己技术知识水平不广,常常遇到技术难题;还有自己没有良好的编程习惯,不注释,有时连自己也看懵了;编程的结构不好,维修和修改代码是很慢。这次实训让我意识到了自己做为计算机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。“纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真真领悟到“学无止境” 这句话的涵义。而所学的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 在这次实训中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。实训过程中,除了要专业知识,包括人际交往,沟通方式及相关礼节方面的内容,对于团队开发来说,团结一致使我深有体会。团队的合作 注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这也是实训最大的收获。

JAVA实验报告心得

北京联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: java上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: 2012年12月19日 版本:指导教师:北京联合大学-信息学院编制 实验1 熟悉java运行环境 实验目的:熟悉jdk环境和操作,编写简单的java应用程序。 心得体会:在该实验中,我碰到的问题是jdk环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用java的if和switch语句。 心得体会:我个人感觉有了c的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟c非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与c区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charat()方法,经查阅jdk 文档,知道charat()方法返回一个位于提供给它的参数索引处的字符,如: (0)检索str中的第一个字符,()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。 心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0; i<6; i++){ n[i] = aa%10; etname()是获得正在执行的线程的名字,().getid()是thread类中返回该线程的标识符的方法,().getpriority()是thread类中返回线程的优先级的方法。 实验12 i/o及文件处理 实验目的:掌握并使用java中的i/o和文件。 心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周java实训时继续攻坚克难。 结语:在这一系列的实验中,我基本掌握了java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。篇二:java实训心得 java实训心得 在上学期的最后一周和本学期的第一周,我和同组的学员在学校机房进行了java暑期实训,现在已经结束了。 回首上学期的java学习,重点还是在学习概念等一些常识性的东西,application应用程序和applet小程序,它的开发工具、数据类型、变量、接口、输入输出流等。学会分析异

java实现文件上传、下载

tomcat上传文件下载文件 首先介绍一下我们需要的环境:我用的是myeclipse8.5的java开发环境,tomcat是用的apache-tomcat-6.0.26这个版本。首先先需要准备一下使用到的 jar包 这些jar包是struts2的jar包。这些jar包是都是用于上传文件的。 注意:这里的jar包版本必须是对应的,如不是可能会tomcat下报错。所以大家最好注意一下啊。最好是用这套jar包。我将会在csdn上将项目jar包发上去。 Jar下载地址(0 分):https://www.360docs.net/doc/a35342998.html,/detail/woaixinxin123/4193113 源代码下载(10分): https://www.360docs.net/doc/a35342998.html,/detail/woaixinxin123/4193134 开始搭建我们的项目。创建web项目名字为File。 第一步:搭建struts2框架。 1、到jar包。

2、编辑web.xml struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepa reAndExecuteFilter struts2 /* index.jsp

文件上传原理,联系适用进度条

using System; using System.Collections.Generic; using https://www.360docs.net/doc/a35342998.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace文件的上传原理_练习使用进度条_ { public partial class Form1 : Form { string path;//选择文件的路径 string fName;//要上传的文件的名字 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { progressBar1.Visible = false; label2.Visible = false; } private void btnLiulan_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); fName = openFileDialog1.SafeFileName.ToString();

textBox1.Text = fName; path = openFileDialog1.FileName.ToString(); path = path.Remove(path.Length - fName.Length); } private void btnStartDownload_Click(object sender, EventArgs e) { int length = 0; int speed; DirectoryInfo di = new DirectoryInfo(path); FileInfo[] fi = di.GetFiles(); foreach (FileInfo fi1 in fi) { if (fName == fi1.ToString()) { length = (int)(fi1.Length); break; } } speed = length / 1024; progressBar1.Maximum = (length / 1024)*100; progressBar1.Value = 0; progressBar1.Step = speed; label2.Visible = true; progressBar1.Visible = true; for (int i = 0; i < (length / 1024) * 100; i += speed) { progressBar1.Value += speed; //label2.Text = "速度:" + speed + "KB/s"; System.Threading.Thread.Sleep(100); } } } }

java项目心得体会.doc

java项目心得体会 篇一:项目部心得体会 篇一: 项目心得体会 项目 心得体会 通过这次做项目, 使我对编程有了进一步的认识。做项目的时候,最重要的不是自己如何快速地将自己分配的 任务做完,而是要注重团队合作。一开始组内必须对这个项目的数据库的命名进行讨论,定 义表的属性的数据类型,表与表之间会有关联,所以有的属性的类型与长度必须定义一致, 这样访问数据库时才不会出错。如果一开始不将这些步骤统一下来的话,就会给后面的编程 带来一系列的问题。 我做的是销售管理, 做的内容包括查询销售记录、查询退货记录、销售添加和商品退货这四个界面。同时对四个 表进行处理,对销售主表、销售明细表这两个表插入数据;对销售主表和销售明细表进行退 货操作的同时,对退货表进行插入数据的操作;最后对销售主表和退

货表进行查询操作。 做这个项目的时候, 我浪费了太多的时间在销售添加界面上。首先对于界面的一些布局没有考虑清楚就动手,不 知道如何运用java语言来对数据库进行处理,对于细节方面考虑地不全面,导致了遇到了错 误就不停地修改。在插入数据到销售主表中停留的时间太长,不懂得运用打印功能来检查错 误。同时在修改库存的时候完全没有思路,只对库存进行了修改却在销售时没有对库存进行 判断,这就是程序的一大错误之处。正如老师所说,在第一个界面完成之后,接下来的商品 退货界面做起来就不太难了,对这个项目实现的功能也有了一定的了解,以及对这个项目如 何动作的有了基本的了解。 其实我在这个模块 遇到的最大的问题就是,一开始对这块模块到底实现的功能与细节分析得不彻底,所以在开 始编程的时候就手足无措。于是这部分的代码就出现了许多漏洞,然后在运行程序的时候就 不停地修补漏洞。接着就对这个界面的功能进行不停地完善,在修改的过程中也就浪费了许 多时间。

java培训心得体会

java培训心得体会 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课不断的提高,思路在不断的开阔,思想在不断的升华,更重要的是自己的理想和抱负更加的坚定。对于一个投身于IT 的新人,经验谈不上,一些学习的心得倒是可以拿出来探讨一下,我们该如何面临这个似曾相识的社会,突然一天如此接近。面对“金融风暴”带来的就业压力,我们正在逐渐走向成熟,我们意志更加坚强,我们深知不经一番寒彻骨,哪来梅花扑鼻香。深深地体会到找一份好工作多么不容易的,尤其是能力匮乏的我们。一切都要付出行动,不能空想,要实现目标,就得不懈的努力。 的确,软件仍然是一个朝阳行业,对于人才的需求量也很大,这也是为什

么很多人努力走上这座独木桥的原因。但是当你面临人生的一个选择时,当你决定要踏上软件开发之路时,你应该问一下自己:我为什么要选择它?其实很多人在这条道路上摸爬滚打了多年也没弄清 楚这个问题的答案。如果你想在这条道路上有所成就的话,一是兴趣使然,二是做好自己的职业规划。软件开发其实是一条非常艰苦的路,不停的学习,不断的熬夜,没有鲜花更没有掌声,陪伴你的是那漫长而孤独的夜。想一想我们准备好迎接这一切了吗?如果没有兴趣我劝你还是放弃这条路,没有兴趣你就在这条路上走不长,等待你的只有转行。如果你真的把它作为你职业生涯的跳板,那么请你做好自己的人生规划,有步骤的实现它。话题稍微远了一点,现在我就谈谈自己在Java学习方面的心得和教训。 古人云:活到老,学到老。读书学习实乃艰苦之事,花费时间,消耗精力。 然苦之外亦见其乐:得到了知识,提高了认识,完善了自己。学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进

Java实现视频网站的视频上传及视频播放功能

Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能 视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。?? ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。 1.能支持的格式 ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 2.不能支持的格式 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式. 实例是将上传视频转码为flv格式,该格式ffmpeg支持,所以我们实例中需要ffmpeg视频处理工具. 数据库 实例所需要的数据库脚本 drop database if exists db_mediaplayer;create database db_mediaplayer;use db_mediaplayer; create table tb_media( id int not null primary key auto_increment comment '主键' , title varchar(50) not null comment '视频名称' , src varchar(200) not null comment '视频存放地址' , picture varchar(200) not null comment '视频截图' , descript varchar(400) comment '视频描述' , uptime varchar(40) comment '上传时间' ); desc tb_media;

WebUploader,Java大文件分片上传

Web大文件分片上传 Web环境中大文件上传不能再用form表单一次上传了,这样效率太低; 我在不断尝试SpringMVC环境下分片接受文件,最终失败;原因目测是SpringMVC、Struts 框架是不支持HTML5方式上传的(这类框架只能支持Form表单方式的文件上传,或者FLash) 那我们可以使用Servlet和SpringMVC结合集成方式实现大文件分片上传; 一、来看看我们的web.xml的配置 很明显两个servlet,上面一个配置的是SpringMVC的入口,下面servlet是视频上传; 他们俩的url-pattern不能冲突;

二、先来看看WebUploader的前端代码 以下是代码: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>