执行类:
/**
* @author LXY
* @date 2008=11-11
*/
public class UploadAction extends HttpServlet {
private static final long serialVersionUID = 1L;
String uploadPath = ""; // 用于存放上传文件的目录
String tempPath = ""; // 用于存放临时文件的目录
@Override
public void init() throws ServletException {
super.init();
//从配置文件中读取文件路径
uploadPath = this.getInitParameter("uploadPath");
tempPath = this.getInitParameter("tempPath");
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//用于存放上传文件的原路径
List<String> fileList = new ArrayList<String>();
//创建存放上传文件的文件夹
File fileDir = new File(uploadPath);
if (!fileDir.exists()) {
fileDir.mkdir();
}
//创建临时文件夹
File tempDir = new File(tempPath);
if (!tempDir.exists()) {
tempDir.mkdir();
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(tempPath)); // 设置临时目录
factory.setSizeThreshold(1024 * 1024); // 设置缓冲区大小
ServletFileUpload upload = new ServletFileUpload(factory);
//设置字符集
upload.setHeaderEncoding("UTF-8");
try {
List<FileItem> list = upload.parseRequest(request); // 得到所有的文件
for (FileItem fileItem : list) {
// 如果是表单信息
if (fileItem.isFormField()) {
String name = fileItem.getFieldName(); // 获得表单中按钮的类型
String value = fileItem.getString("UTF-8"); // 获得表单中按钮的值
request.setAttribute(name, value);
} else {
String name = fileItem.getFieldName(); //获得表单中域的名字
String value = fileItem.getName(); // 获得从浏览器中取得的文件全路径
//将上传文件的路径放到列表里
fileList.add(value);
int start = value.lastIndexOf("\\");
String fileName = value.substring(start + 1); // 由于不同的浏览器可能取得的文件的名字不同,有的浏览器将整个路径取道,有的浏览器只取到文件名
request.setAttribute(name, fileName); // IE里取的是文件明,如XXX.doc等
// 使用fileupload提供的上传
try {
// 写入文件,也可以从fileName中提取文件名:
fileItem.write(new File(uploadPath, fileName));
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
//将获得的文件路径放回请求
request.setAttribute("fileList", fileList);
//页面跳转
request.getRequestDispatcher("success.jsp").forward(request, response);
}
}
分享到:
相关推荐
java使用swf+ext实现文件批量上传,直接导入Eclipse就可以使用。
BAT脚本实现文件批量上传示例
asp.net自定义固定格式多文件批量上传
SWFupload_文件批量上传,SWFupload_文件批量上传,SWFupload_文件批量上传,SWFupload_文件批量上传
基于C#MVC-WEBAPI实现的文件批量上传服务器源代码,客户端通过form表单或ajax提交参数及文件,本程序负责接收并处理请求:将文件根据时间戳重命名后存入指定目录,并将参数与文件一一对应后存入mysql数据库,代码简洁,4-...
element-ui+vue单文件上传和 多文件批量上传(多文件走一次接口)
Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,经过一番研究,把案例整理出来,供大家学习
自己做的一个struts2 实现文件批量上传功能,
图片,文件批量上传源代码,这是一个非常好用,且操作方便的图片批量上传源码。
内有Demo,学习不难,上传效果还不错,用户体验效果很好,直接拿来就可以使用了,
这是一款强大的基于jQuery+HTML5实现的网页文件拖动上传代码,boostrap拖动文件批量上传插件。
boostrap可拖动文件批量上传代码是一款基于jQuery HTML5实现的文件拖动上传插件。
三种文件上传方法、包括单文件、多文件。带进度条,可以直接用在项目,学习的好例子。
struts1实现的文件批量上传,java实现
选择多个文件上传,显示上传速度,进度条,纯正的FLASH代码,使用的是HTTP协议,所以客户端,服务端都不需要安装任何组件因为是模仿FORM表单提交,所以支持所有的网页动态语言:ASP PHP ASP.NET JSP等。 界面好看,...
选择多个文件上传,显示上传速度,进度条,纯正的FLASH代码,使用的是HTTP协议,所以...2.在所有文件上传完毕出发事件,JAVASCRIPT函数challs_flash_onCompleteData 里面添加一个返回参数,记录了此次上传失败的数量
基于Java EE的文件批量上传的设计与实现,经测试,系统完美运行。
文件批量上传客户端免费组件 基于FLASH制作,所以使用者不会要求下载组件 丰富的设置 可以在上传前就进行文件类型和文件大小的检测,节省宽带
PHP文件批量上传 PHP图片批量上传 组件打包。