/** * * @author 郑阳文 * * 使用apache的commons-io-2.4.jar,commons-fileupload-1.2.2.jar完成处理文件上传的Servlet */ public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** * request.getRealPath("/")返回的是当前项目所在硬盘的路径 如:C:\Program Files\Apache * Software Foundation\Tomcat 6.0\webapps\Struts2_9\ * request.getRealPath("/upload")返回的是当前项目所在硬盘的路径+根目录下面的upload的路径 * 如:C:\Program Files\Apache Software Foundation\Tomcat * 6.0\webapps\Struts2_9\Upload */ String path = request.getRealPath("/upload"); DiskFileItemFactory factory = new DiskFileItemFactory(); /** * Apache上传组件上传的文件若小于某一值时就将要上面的文件放在内存中,否则就放到一个临时的目录中去。 */ /** * 设置文件小于多少时放到内存当中去。1024*1024为1M的大小 */ factory.setSizeThreshold(1024 * 1024); /** * 设置大于上面设置的大小的文件上传时所放的临时目录,上传完成后临时目录所存放的垃圾文件不自动删除。 */ factory.setRepository(new File(path)); /** * ServletFileUpload完成上传的核内类 */ ServletFileUpload servletUpload = new ServletFileUpload(factory); try { List<FileItem> list = servletUpload.parseRequest(request); for (FileItem item : list) { /** * 非file字段,即普通的字段 */ if (item.isFormField()) { /** * 获得字段的名称,即对应页面文本框等的名称 */ String name = item.getFieldName(); /** * 以gbk方式获得该字段的value值,即对应页面文本框等所输入的值 */ String value = item.getString("gbk"); request.setAttribute(name, value); } else { /** * file型字段 */ /** * 获得页面file的名称 */ String name = item.getFieldName(); /** * 获得页面file中用户选择的文件的路径(与普通的字段不同) * 由于不同的浏览器所取得值不同,有的得到是所选择文件的路径,有的得到的就是所选择的文件的名称。 * 如:有的浏览器所取得的是:C:\Documents and * Settings\Administrator\桌面\电话本.txt 有的浏览器所取得的是:电话本.txt */ String value = item.getName(); /** * 下面做一个统一的处理 若为文件名则下面没有”\“则start为-1 */ int start = value.lastIndexOf("\\"); String fileName = value.substring(start + 1); request.setAttribute(name, fileName); /** * 下面做上传的处理 */ InputStream is = item.getInputStream(); /** * 上传的路径依然选择path */ File UploadFile = new File(path, fileName); OutputStream os = new FileOutputStream(UploadFile); byte[] buffer = new byte[400]; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, buffer.length); } os.close(); is.close(); /** * 更简单的上传方式 * 无需使用InputStream和OutputStream对象item.write(File)即可 * item.write(UploadFile); */ } } } catch (FileUploadException e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
- commons-fileupload-1.2.2.jar (58.2 KB)
- 下载次数: 1
- commons-io-2.4.jar (180.8 KB)
- 下载次数: 1
发表评论
-
jdom读写XML
2013-01-14 12:38 0package com.wen.util; impor ... -
poi读写excel
2013-01-14 10:53 0package com.wen.util; impor ... -
各种记事
2013-01-07 10:27 0查正则:http://www.w3cfuns.com/po ... -
jsp生成验证码图片
2013-01-06 16:48 0<%@ page contentType="i ... -
spring3.1的mvc rest
2013-01-06 16:35 0工程结构: javabean如下: p ... -
生成随机汉字
2013-01-06 15:49 0package com.wen.util; import ... -
md5加密和其它的几种加密
2013-01-06 15:47 0package com.wen.util; impor ... -
java连数据库及得到表和表字段
2013-01-06 15:44 0package com.wen.util; import ... -
bean和Map的转换
2013-01-06 15:43 0package com.wen.util; import ... -
生成验证码图片
2013-01-06 15:27 743package com.test; import jav ...
相关推荐
在Java开发中,上传文件是一项常见的任务,而`jar包`是Java应用程序的打包格式,包含了一组类库和资源文件。"上传文件所需jar包"这个标题暗示我们需要关注的是与文件上传相关的Java库。在描述中提到的"上传文件时所...
本实例主要探讨如何使用JSP来实现文件上传的功能,特别是针对图片、文档等类型的文件。文件上传是一个常用的需求,例如用户在网站上提交个人信息时可能需要上传头像或简历。以下将详细介绍如何使用JSP进行文件上传。...
使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...
2. **上传文件**:用户可以通过网页表单选择本地文件并上传到服务器,支持多文件同时上传,或者拖放上传。 3. **下载文件**:用户可以点击文件名直接下载,系统可能会提供下载链接或者通过浏览器的下载管理器进行...
在Java开发中,上传文件是一项常见的任务,尤其在构建Web应用程序时。为了实现这个功能,开发者通常需要依赖一些外部库,这些库提供了处理文件上传所需的功能。标题提到的"java上传文件必需包"包含了两个关键的...
在压缩包中的"FTP 上传文件"可能是一个批处理脚本(`.bat`文件),包含了上述FTP命令的组合,用于自动执行文件上传。这个脚本可以包含错误检查、日志记录等高级功能,以确保上传过程的可靠性和可追溯性。 总之,...
在Java编程语言中,上传文件是一项常见的任务,广泛应用于各种应用程序,如Web服务、云存储接口等。这里我们将深入探讨如何使用Java实现文件上传功能,同时结合提供的描述,我们可以假设包含三个示例文本文件(txt...
请注意,实际应用中,您可能还需要处理其他方面,如验证文件类型、重命名上传文件以避免冲突、处理异常、提供反馈给用户等。此外,确保服务器有足够的权限来读写指定的上传目录。 总的来说,Apache Commons ...
在Vue组件中,创建一个`input[type="file"]`用于选择文件,使用`@change`事件监听文件选择,然后在`watch`中监控文件状态,当文件选择后触发上传请求: ```html <input type="file" @change="handleFileChange...
在处理文件上传需求时,JSP通常作为前端界面,而Servlet则负责后端逻辑处理。本篇文章将深入探讨如何使用JSP与Servlet进行文件上传,并特别关注如何解决中文文件名乱码的问题。 首先,我们需要理解文件上传的基本...
此外,设置表单的enctype属性为"multipart/form-data",这是上传文件所必需的。 ```html <input type="file" name="uploadFile"> 上传"> ``` 三、Servlet处理文件上传 2. 使用Servlet处理请求:在Java中,我们...
在Java Web开发中,文件上传是一项常见的功能,用于允许用户从他们的计算机上传文件到服务器。本教程将深入探讨如何在Java中实现文件上传,主要关注使用JSP进行前端验证和Servlet进行后端处理。 首先,我们需要理解...
接着,创建了`DiskFileItemFactory`实例,用于处理上传文件的临时存储,并设置了内存阈值,超过这个大小的文件会存储到磁盘。`ServletFileUpload`对象用于解析HTTP请求中的文件上传数据,同时设置了最大允许的上传...
在Web开发中,用户经常需要上传文件,例如图片、文档等。为了提供更好的用户体验,引入了文件上传进度条的功能,让用户能实时了解上传进度,增强交互性和反馈效果。本主题将详细探讨如何在JSP(JavaServer Pages)和...
在文件上传过程中,当需要对上传文件进行进一步处理,如重命名、移动或读取内容时,`commons-io.jar`就显得非常实用。 在使用这两个jar包之前,你需要将它们添加到项目的类路径中,这通常可以通过IDE的构建路径配置...
1. **文件大小限制**:默认情况下,ASP.NET对上传文件的大小有限制,默认最大为4MB(即4096KB)。如果需要上传更大的文件,可以通过修改`web.config`中的`httpRuntime`元素的`maxRequestLength`属性来调整此限制。 ...
在Java编程中,上传文件到服务器是一项常见的任务,特别是在Web应用程序和云计算环境中。这个过程涉及到客户端(通常是用户设备上的Java程序)与服务器之间的数据传输,通常通过HTTP或HTTPS协议进行。下面将详细介绍...
2. **multipart/form-data**:注意,上传文件时表单的`enctype`属性必须设置为`multipart/form-data`,这是因为文件上传涉及到二进制数据,而这种编码方式能正确处理二进制数据。 3. **Servlet**:当用户提交表单后...
需要注意的是,文件上传涉及到客户端和服务器端的交互,因此还需要考虑安全性问题,比如对上传文件的类型和大小进行限制,以及对上传文件进行病毒扫描等。此外,还可以进一步优化上传过程,比如实现进度条显示等功能...
这里,`upload.single('userFile')`会接收一个名为`userFile`的文件字段,将其存储在`uploads/`目录下,并提供有关上传文件的信息。 总结,通过结合Bootstrap的文件输入组件和HTML的`form`表单,我们可以创建一个既...