- 浏览: 201482 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qiankai86:
s
多个文件上传的功能 -
zhjxzhj:
经测试不能用
PDF破解软件 -
meadlai:
很不错...哈哈...
PDF破解软件 -
talin2010:
刚学了,复习一下。。
Mysql+tomcat连接池自己的例子 -
yshuaiwen:
上面的方法都不怎么好,太麻烦,而且都需要改tomcat的xml ...
Mysql+tomcat连接池的配置实例
这里用到的是用commons-fileupload-1.2.1.jar和commons-io-1.4.jar两个插件进行多个文件上传的功能。把这2个插件放入到lib下面
1. 在D盘下面建立temp文件夹,作为存放你所上传的文件的目录。
2. 建立个demo2.html
3. 建立demo2.jsp
4.建立个servlet
1. 在D盘下面建立temp文件夹,作为存放你所上传的文件的目录。
2. 建立个demo2.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>File upload</title> </head> <body> <form name="myform" action="demo2.jsp" method="post" enctype="multipart/form-data"> File1:<br> <input type="file" name="myfile"><br> File2:<br> <input type="file" name="myfile"><br> <br> <input type="submit" name="submit" value="Commit"> </form> </body> </html>
3. 建立demo2.jsp
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ page import="org.apache.commons.fileupload.*"%> <%@ page import="org.apache.commons.fileupload.servlet.*"%> <%@ page import="org.apache.commons.fileupload.disk.*"%> <%@ page import="java.util.*"%> <%@ page import="java.io.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <% String uploadPath = "D:\\temp"; boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart == true) { try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List<FileItem> items = upload.parseRequest(request);//得到所有的文件 Iterator<FileItem> itr = items.iterator(); while (itr.hasNext()) {//依次处理每个文件 FileItem item = (FileItem) itr.next(); String fileName = item.getName();//获得文件名,包括路径 if (fileName != null) { File fullFile = new File(item.getName()); File savedFile = new File(uploadPath, fullFile .getName()); item.write(savedFile); } } out.print("upload succeed"); } catch (Exception e) { e.printStackTrace(); } } else { out.println("the enctype must be multipart/form-data"); } %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>File upload</title> </head> <body> </body> </html>
4.建立个servlet
package com.zj.sample; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.DiskFileUpload; 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; @SuppressWarnings("serial") public class Upload extends HttpServlet { private String uploadPath = "D:\\temp"; // 上传文件的目录 private String tempPath = "d:\\temp\\buffer\\"; // 临时文件目录 File tempPathFile; @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String msg = ""; DiskFileUpload fu = new DiskFileUpload(); // 设置允许用户上传文件大小,单位:字节 // fu.setSizeMax(10000000); // 设置最多只允许在内存中存储的数据,单位:字节 // fu.setSizeThreshold(4096); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录 //(临时存放目录,文件上传完毕后有办法清除它吗?) fu.setRepositoryPath("D:\\TEMP"); //开始读取上传信息 List fileItems = null; try { fileItems = fu.parseRequest(request); } catch (FileUploadException e1) { // TODO 自动生成 catch 块 e1.printStackTrace(); } // 依次处理每个上传的文件 Iterator iter = fileItems.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); //忽略其他不是文件域的所有表单信息 if (!item.isFormField()) { String name = item.getName();//获取上传的文件名 long size = item.getSize();//获取上传的文件大小(字节为单位) if ((name == null || name.equals("")) && size == 0) continue;//跳到while检查条件 System.out.println("<tr>"); System.out.println("<td>" + name + "</td>"); System.out.println("<td>" + size + "</td>"); //以下为文件名处理,将上传的文件保存在项目所在目录下。 //获取文件名字符串的长度 int end = name.length(); //返回在此字符串中最右边出现的指定子字符串的索引。 int begin = name.lastIndexOf("\\"); File savedFile = new File("c:\\TEMP", name.substring( begin + 1, end)); try { item.write(savedFile); } catch (Exception e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } } try { // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb factory.setRepository(tempPathFile);// 设置缓冲区目录 // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB List<FileItem> items = upload.parseRequest(request);// 得到所有的文件 Iterator<FileItem> i = items.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); String fileName = fi.getName(); if (fileName != null) { File fullFile = new File(fi.getName()); File savedFile = new File(uploadPath, fullFile.getName()); fi.write(savedFile); } } System.out.print("upload succeed"); } catch (Exception e) { // 可以跳转出错页面 e.printStackTrace(); } } public void init() throws ServletException { File uploadFile = new File(uploadPath); if (!uploadFile.exists()) { uploadFile.mkdirs(); } File tempPathFile = new File(tempPath); if (!tempPathFile.exists()) { tempPathFile.mkdirs(); } } }
- 上传多文件.rar (160.9 KB)
- 下载次数: 130
发表评论
-
查询2个表比较然后做下拉菜单显示
2008-09-20 19:06 1109查询2个表比较然后做下拉菜单显示 这段代码是在Main ... -
菜单配置上下移功能
2008-09-06 05:47 1180在数据库中 System.do?method=toM ... -
where 1 = 1
2008-09-04 17:44 1337[转]sql语句中where 1=1的作用 2008-08-2 ... -
工作中的连接池用法
2008-09-03 06:39 1165实际工作中连接池的应用 在 web.xml中 &l ... -
spring注入的例子
2008-08-31 21:35 1110关于注入机制的例子 在applicationContext. ... -
log4j自己的一个实例
2008-08-22 13:40 1100程序启动的时候首先启动web.xml中的servlet中log ... -
log4j
2008-08-22 13:39 819log4j 在强调可重用组件开发的今天,除了自己从 ... -
servlet中配置文件web.xml中的参数context-param和init-param区别
2008-08-22 13:05 2739servlet中配置文件web.xml中的参数context- ... -
在myeclipse中实现javascipt 的快捷键
2008-08-07 03:38 944在windows下面的preference下面的Genaral ... -
Myeclipse中,在导入脚本中出现乱码的问题的解决方法。
2008-08-07 03:36 1715在windows 下面的preferences 下面的Gena ... -
Mysql+tomcat连接池自己的例子
2008-07-31 23:18 23211.把MySQL-Connector-java-3.0.12- ... -
Mysql+tomcat连接池的配置实例
2008-07-31 23:03 2769特别感谢:robustwang 在Java Web开发中都 ... -
从数据库中读取数据(AJAX版本)
2008-07-30 21:33 4005现在是用ajax 做从数据库读取数据的例子 1个jsp Re ... -
从数据库中读取数据(直连版本)
2008-07-30 18:06 1829从数据库中读取数据(直连版本) 下面的这里例子实现的是在注册 ... -
Tomcat 的数据库连接池设置与应用
2008-07-29 21:33 1097Tomcat 的数据库连接池设置与应用 1.将数据库驱 ... -
session对象使用示例
2008-07-27 19:41 1229携带用户名往下跳转的 ... -
JDBC使用步骤
2008-07-24 18:42 6295分为6个步骤 1. load the driver (1) ... -
CSS鼠标移至此处, 背景变化例子
2008-07-24 17:33 1853鼠标移至此处, 背景变化的CSS例子 保存格式以jsp或者是 ... -
CSS背景颜色例子
2008-07-24 17:28 1979一个 有关 CSS 样式的小例子 建立一个 1.jsp ... -
Struts学习笔记2——文件过滤
2008-07-23 22:09 1028文件过滤功能 根据前面的struts学习笔记1 来继续我们下面 ...
相关推荐
这个"js input file多个文件上传功能.zip"包含了一个实现这一功能的代码示例,适用于图片和其他类型的文件上传。在网页上,用户可以通过点击一个文件输入框选择多个文件进行上传,极大地提高了用户体验。 首先,让...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
多文件上传功能则意味着用户可以一次性选择并上传多个文件,大大提高了数据传输的效率。 【详细实现】 1. **引入资源**:首先,你需要在HTML文件中引入Bootstrap和Bootstrap-fileinput的相关CSS和JS文件。这些文件...
在Java开发中,多文件上传是一项常见的功能,尤其在Web应用中,用户可能需要一次性上传多个文件,如图片、文档等。本知识点将详细介绍如何在Java中实现这一功能,以及结合Flash实现上传界面并显示上传进度条。 1. *...
【标题】"JSP多个文件上传源代码程序"揭示了一个重要的Web开发技术,即在JavaServer Pages (JSP)环境中实现多文件上传的功能。在Web应用中,用户可能需要同时上传多个文件,如图片、文档等,这在论坛、博客、社交...
在IT领域,上传多个文件是一项常见的操作,尤其在网页或应用程序中。这一功能使得用户能够一次性上传多...在实际开发中,根据项目需求和用户体验,可以灵活运用和扩展这些基础技术,提供更加便捷、安全的文件上传功能。
综上所述,这个"多文件上传 源码"涵盖了文件选择、读取、包装、异步上传、进度追踪、暂停/取消、错误处理等多个环节,是构建高效、用户友好的文件上传功能的重要参考资料。对于开发者来说,理解并掌握这些技术细节,...
总的来说,实现多个文件上传的功能需要对Java Servlet、文件I/O、异常处理和安全策略有深入理解。在实际开发中,可以根据项目需求选择合适的工具和库,如Spring Boot中的`MultipartFile`,或是Apache Commons ...
如果需要上传多个文件,先将所有文件的URI保存在一个列表中。遍历此列表,依次处理每个文件。 #### 3.2 Multipart请求 多文件上传通常采用Multipart形式,如HTTP的POST请求。Android的`HttpURLConnection`或第三方...
同时,了解并应用相关的WebAPI或SignalR技术,可以使你的文件上传功能更加先进和高效。 总的来说,C# .NET的多文件上传涉及前端和后端的协同工作,通过理解并实践这些示例,你可以更好地掌握文件上传这一重要技能,...
采用前后端分离的方式进行开发,实现了几种常用的文件上传功能。 前端采用 vue.js + plupload + element-ui 实现了文件在浏览器端的发送, 后端采用 spring boot + spring + spring mvc + mybatis 实现了文件在服务器...
传统的HTML表单上传方式通常只能处理单个文件,但随着技术的发展,现在我们可以使用Ajax多文件上传组件来实现一次选择并上传多个文件的功能。这种组件不仅提高了用户体验,还允许在不刷新页面的情况下完成文件上传,...
5. **多文件上传支持**:类能够处理表单中包含多个`<input type="file">`元素的情况,一次性上传多个文件,大大提高了用户体验。 6. **详细注释**:类的代码中包含了丰富的注释,方便开发者理解每一步操作的逻辑,...
EXTJS 是一个强大的JavaScript 框架,专用于构建富客户端Web应用程序。在EXTJS中,`MultiFileUploadField` 是一个组件,它允许用户在单个操作中...通过合理利用这个组件,开发者可以快速构建出功能完善的文件上传功能。
"MultifileUploadDemo"是一个很好的学习资源,它展示了如何结合Flash和JSP实现多文件上传功能。通过深入研究这个示例,开发者可以掌握如何处理复杂的文件上传需求,提高Web应用的功能性和用户体验。同时,随着HTML5...
综上所述,这个名为“js控制多文件上传”的压缩包可能包含了实现上述功能的JavaScript代码,可以帮助开发者快速集成多文件上传功能到他们的网页应用中。使用这个资源,开发者可以避免从零开始编写复杂的文件上传逻辑...
在Vue.js中,实现文件上传功能是常见的需求,尤其是在构建交互丰富的Web应用时。本篇将详细介绍Vue.js中实现多文件上传的相关知识点,以及如何使用`vue-upload-component`这个开源组件来帮助我们实现这一功能。 ...
"uploadify"是一款基于jQuery的插件,它为网页提供了强大的文件上传功能,包括一次选择多个文件和批量上传的能力。这些特性极大地提高了用户上传文件的效率,减轻了他们的操作负担。 "uploadify"的多选功能允许用户...
通过实例化FileReference对象,用户可以选择本地计算机上的一个或多个文件,并通过HTTP请求将这些文件上传到服务器。FileReference类提供了选择文件(browse())、监控上传进度(addEventListener())以及实际上传...