java大附件上传_java 支持 超大上G , 多附件上传

首先 确定要上传的目录

WEB.XML 文件

org.apache.commons.fileupload.servlet.FileCleanerCleanup

tempXlsPath

/WEB-INF/temp/

UploadServlet

com.thams.web.fileServlet.UploadServlet

UploadServlet

/servlet/UploadServlet

servlet

package com.thams.web.fileServlet;

import java.io.File;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileItemFactory;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.FileCleanerCleanup;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.commons.io.FileCleaningTracker;

import org.apache.commons.io.FilenameUtils;

import org.apache.log4j.Logger;

/**

* @author serv

*/

public class UploadServlet extends HttpServlet {

private static Logger log = Logger.getLogger(UploadServlet.class);

protected void service(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

// Check that we have a file upload request

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if (!isMultipart) {

log.debug("没有可上传的文件, 你想干什么 !");

return;

}

// Create a factory for disk-based file items

String tempFilePath = getServletContext().getRealPath("/")+getServletContext().getInitParameter("tempXlsPath");

FileItemFactory factory = newDiskFileItemFactory(getServletContext(), new File(tempFilePath));

// Create a new file upload handler

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

/* FileItem */

List items = null;

try {

// Parse the request

items = (List) upload.parseRequest(request);

String filename = null;

for (FileItem fileItem : items) {

if (!fileItem.isFormField()){//file

filename = FilenameUtils.getName(fileItem.getName());

fileItem.write(new File(tempFilePath+filename));

response.getWriter().write(tempFilePath+filename+"
");

}

}

} catch (FileUploadException e) {

log.error(e.getMessage());

} catch (Exception e) {

log.error(e.getMessage());

}

}

/**

* The FileCleanerCleanup provides an instance of org.apache.commons.io.FileCleaningTracker.

* This instance must be used when creating a org.apache.commons.fileupload.disk.DiskFileItemFactory.

*/

public static DiskFileItemFactory newDiskFileItemFactory(

ServletContext context, File repository) {

FileCleaningTracker fileCleaningTracker = FileCleanerCleanup

.getFileCleaningTracker(context);

DiskFileItemFactory factory = new DiskFileItemFactory(

DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, repository);

factory.setFileCleaningTracker(fileCleaningTracker);

return factory;

}

}

测试页面

测试结果

fdb0e14e3aa121b8b12040b9e3e8618d.png

页面输出:

ac12d9fc79c036fd614369f5543d2497.png

50d35e16a3015ce9a0cbe2c8f6ffe084.png

大小: 13.1 KB

801d7f76acd6848ae0f077d1e44bdc0c.png

大小: 6.5 KB

描述: commons-fileupload-1.2.2 最新版

下载次数: 337

3

1

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-10-29 10:34

浏览 6362

评论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值