fileupload文件上传(配合Uploadify使用)

 

private String PIC_UP_MODEL_PATH="uploads/";

public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {

String modelName = MODEL_NAME;
   String fileRealPath = "";
   String dir = PIC_UP_MODEL_PATH+modelName;
   //      + StrFormat.getServerTime("yyyy/MM/dd");//按日期生成存放目录
   String savePath = request.getSession().getServletContext().getRealPath(dir);
   File f1 = new File(savePath);
   if (!f1.exists()) {
    f1.mkdirs();
   }
   f1 = null;

   DiskFileItemFactory fac = new DiskFileItemFactory();
   ServletFileUpload upload = new ServletFileUpload(fac);
   upload.setHeaderEncoding("UTF-8");
   List<?> fileList = null;
   try {
    fileList = upload.parseRequest(request);
   } catch (FileUploadException ex) {
    ex.printStackTrace();
    return  null;
   }
   if (fileList == null) {
    return  null;
   }
   Iterator<?> it = fileList.iterator();
   String name = "";
   String extName = "";
   while (it.hasNext()) {
    FileItem item = (FileItem)it.next();
    if (!item.isFormField()) {
     name = item.getName();
     if (name == null || name.trim().equals("")) {
      continue;
     }

     //文件后缀名如:.doc
     if (name.lastIndexOf(".") >= 0) {
      extName = name.substring(name.lastIndexOf("."));
     }
     String fileName = name.replaceAll("\\s", "");
     fileName = fileName.substring(0,fileName.lastIndexOf("."));

     File f = new File(savePath + "/" + fileName + extName);

     while (f.exists()) {//如果文件存在,在文件名后加上随机数做区分
      int rand = (int) Math.round(Math.random() * 100);
      fileName += "_" + new Date().getTime() + rand;
      f = new File(savePath + "\\" + fileName + extName);
     }
     f = null;
     fileRealPath = savePath + "\\" + fileName + extName;
     File saveFile = new File(fileRealPath);

     try {
      item.write(saveFile);
      URLEncoder.encode(fileRealPath, "UTF-8");
      response.getOutputStream().println(URLEncoder.encode(fileRealPath, "UTF-8"));
     } catch (Exception e) {
      e.printStackTrace();
     }

    }
   }

   return null;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值