做完flex上传后,总结下
后台使用的是servlet,第一次么有设置临时目录,使用的方法
FileItem fileitem = (FileItem) iter.next();
fileitem.write(upfile);
在上传excel2007当上传同一个文件多次时,第一次成功,第二次失败,发现是上传完成后,文件还在被使用,所以尝试了第二种方法
设置临时目录
DiskFileItemFactory dff = new DiskFileItemFactory();// 创建该对象
dff.setRepository(tmpDir);// 指定上传文件的临时目录
并使用文件流处理文件
List items = sfu.parseRequest(req);
Iterator fii = items.iterator();// 解析request
// 请求,并返回FileItemIterator集合
while (fii.hasNext()) {
FileItem fis = (FileItem) fii.next();// 从集合中获得一个FileItem
if (!fis.isFormField() && fis.getName().length() > 0) {// 过滤掉表单中非文件域
fileName = fis.getName();
System.out.println("取得文件请求" + fis.getFieldName()
+ "他的名是:" + fis.getName() + "值是"
+ fis.getString());
BufferedInputStream in = new BufferedInputStream(fis
.getInputStream());// 获得文件输入流
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(saveDir + "\\"
+ fileName)));// 获得文件输出流
System.out.println( "文件" + fileName + "上传成功\\n");
Streams.copy(in, out, true);// 开始把文件写到你指定的上传文件夹
in.close();
out.flush();
out.close();
}
}
还有需要注意的就是上传中文文件名时为乱码,解决方法
DiskFileItemFactory dff = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(dff);// 创建该对象
sfu.setHeaderEncoding("UTF-8");
附件为两种方法的完整代码
分享到:
相关推荐
flex上传文件夹插件,可以方便的上传文件夹,可以添加到支持flash的环境中。
flex上传控件,带进度、时间、速度显示,需要源代码的可以邮件harry95@163.com
Flex 上传文件控件 (带java服务端) 可以设置多文件还是单文件 设置上传大小 显示上传进度条
自己开发的flash上传demo,flex上传技术,无刷新上传,显示进度,后台处理程序为php,且支持批量上传。
Flex和Servlet结合使用,文件上传、下载
Flex 上传多个文件的简单事例,希望对大家能有所帮助
flex上传文件的例子,支持多文件上传。
flex 上传,包含服务端flex 上传,包含服务端
flex上传下载 企业应用并解决乱码问题 包括服务端java 以及flex 客户端代码 并解决中文乱码
一个简短的flex上传文件的例子,可以帮助一下刚刚学习
flex 上传文件代码 不过好像只能传小文件,比如一首歌!
flex 上传例子flex 上传例子
Flex 上传头像(带裁剪) 有演示地址 asp.net版 演示地址: http://www.bt-wow.cn/study/fileresize.aspx 都是自己辛苦开发的,分享给大家。
仿163邮件的flex上传控件,跟随表单提交,js随意控制
Mobile FLEX来上传文件到指定URL
flex完全自学手册第24章 上传下载源码
用flex实现图片上传带预览功能。各位可以试试。
关于flex上传
Flex 文件上传的文件代码 交你一步一步的完成上传功能
实现简单的单线程上传下载,已经在vs里运行成功的