java 文件上传


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.Iterator;
import java.util.List;


import javax.servlet.http.HttpServletRequest;


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;


/**
 * 上传工具类
 * 
 * @author alon
 * 
 */
public class UploadUtil {


/**
* 文件上传

* @param request
* @param path
* @param fileNameFirst
* @return
* @throws Exception
*/
public static String uploadFile(HttpServletRequest request, String path,
String fileNameFirst) throws Exception {
File file = new File(path);
if (!file.exists()) {
file.mkdirs();
}
ServletFileUpload sfu = new ServletFileUpload(new DiskFileItemFactory());
sfu.setHeaderEncoding("UTF-8");
List fileList = sfu.parseRequest(request);
String name = "";
String extName = "";
String fileName = "";
for (int i = 0; i < fileList.size(); i++) {
FileItem fi = (FileItem) fileList.get(i);
if (!fi.isFormField()) {
name = fi.getName();
if (name != null && !"".equals(name.trim())) {
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf("."));
}
}


fileName = fileNameFirst + extName;
File saveFile = new File(path + fileName);
fi.write(saveFile);
System.out.println(path + fileName + " 文件上传成功!");
}
}
return fileName;
}


/**
* 多文件上传

* @param request
* @param path
* @param fileNameFirst
* @throws Exception
*/
public static void uploadMultiFile(HttpServletRequest request, String path,
String fileNameFirst) throws Exception {
File tempDirPath = new File(path);
if (!tempDirPath.exists()) {
tempDirPath.mkdirs();
}


// 创建磁盘文件工厂
DiskFileItemFactory fac = new DiskFileItemFactory();
// 创建servlet文件上传组件
ServletFileUpload upload = new ServletFileUpload(fac);
// 文件列表
List fileList = null;
// 解析request从而得到前台传过来的文件


fileList = upload.parseRequest(request);
// 保存后的文件名
String imageName = null;
// 便利从前台得到的文件列表
Iterator<FileItem> it = fileList.iterator();
while (it.hasNext()) {
FileItem item = it.next();
// 如果不是普通表单域,当做文件域来处理
if (!item.isFormField()) {
imageName = new Date().getTime() + Math.random() * 10000
+ item.getName();
BufferedInputStream in = new BufferedInputStream(
item.getInputStream());
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(tempDirPath + "\\"
+ imageName)));
Streams.copy(in, out, true);


}
}


}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值