flex上传

做完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");
附件为两种方法的完整代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值