- 浏览: 7859 次
- 性别:
- 来自: 上海
文章分类
最新评论
1. jsp上传
Notice:
1. form表单 method 属性必须设置为 POST 方法 ,不能使用 GET 方法
2. form表单 enctype 属性需要设置为 multipart/form-data
3. form表单 action 属性需要设置为提交到后台处理文件上传的jsp文件地址或者servlet地址。例如 uploadFile.jsp 程序文件用来处理上传的文件
4. 上传文件元素需要使用 <input .../> 标签,属性设置为 type="file"。如果需要上传多个文件,可以在 <input .../>标签中设置不同的名称
Steps
首先我们先定义文件上传后存储在服务上的位置,你可以将路径写在你的程序当中,或者我们可以在web.xml配置文件中通过设置 context-param 元素来设置文件存储的目录
依赖 FileUpload, 所以你需要在你的classpath中引入最新的 commons-fileupload.x.x.jar 包文件
FileUpload 依赖 Commons IO, 所以你需要在你的classpath中引入最新的 commons-io-x.x.jar
在测试以下实例时,你需要上传确认上传的文件大小小于 maxFileSize 变量设置的大小 ,否则文件无法上传成功
确保你已经创建了目录F:\files_uploaded
fileupload.jsp
processFileUpload.jsp
NOTE:
代码copy自网络,起初,processFileUpload.jsp中的List items = servlet.parseRequest(request);得到的总是空集合,网上也有很多遇到这种情况的,原因 在fileupload.jsp: name="fileSelected" , 如果没有name标记,commons fielupload不会作处理
servlet.setHeaderEncoding("UTF-8");中文名不会乱码
2. servlet上传
fileupload.jsp
upload_result.jsp
web.xml
Notice:
1. form表单 method 属性必须设置为 POST 方法 ,不能使用 GET 方法
2. form表单 enctype 属性需要设置为 multipart/form-data
3. form表单 action 属性需要设置为提交到后台处理文件上传的jsp文件地址或者servlet地址。例如 uploadFile.jsp 程序文件用来处理上传的文件
4. 上传文件元素需要使用 <input .../> 标签,属性设置为 type="file"。如果需要上传多个文件,可以在 <input .../>标签中设置不同的名称
Steps
首先我们先定义文件上传后存储在服务上的位置,你可以将路径写在你的程序当中,或者我们可以在web.xml配置文件中通过设置 context-param 元素来设置文件存储的目录
<context-param> <param-name>file_upload_dir</param-name> <param-value>F:\files_uploaded</param-value> <description>Location to store uploaded files</description> </context-param>
依赖 FileUpload, 所以你需要在你的classpath中引入最新的 commons-fileupload.x.x.jar 包文件
FileUpload 依赖 Commons IO, 所以你需要在你的classpath中引入最新的 commons-io-x.x.jar
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency>
在测试以下实例时,你需要上传确认上传的文件大小小于 maxFileSize 变量设置的大小 ,否则文件无法上传成功
确保你已经创建了目录F:\files_uploaded
fileupload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Up load file</title> </head> <body> <form action="processFileUpload.jsp" method="post" enctype="multipart/form-data"> <input type="file" size="50" name="fileSelected"> <input type="submit" value="upload"> </form> </body> </html>
processFileUpload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%> <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%> <%@ page import="java.io.*,java.util.*,javax.servlet.*" %> <%@ page import="org.apache.commons.fileupload.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% File file; int maxSize = 1024*1024*1024; int maxMemSize = 1024*1024; ServletContext ctx = pageContext.getServletContext(); String filePath = ctx.getInitParameter("file_upload_dir"); String contentType = request.getContentType(); if(ServletFileUpload.isMultipartContent(request)) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(maxMemSize); //设置内存中存储文件的最大值 factory.setRepository(new File("F:\\tmp")); ServletFileUpload servlet = new ServletFileUpload(factory); servlet.setSizeMax(maxSize); //设置最大的上传文件大小 try { List items = servlet.parseRequest(request); out.println(items.size()); Iterator it = items.iterator(); while(it.hasNext()) { FileItem item = (FileItem) it.next(); String fieldName = item.getFieldName(); String fileName = item.getName(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); if(fileName.lastIndexOf("\\") >= 0) { file = new File(filePath, fileName.substring(fileName.lastIndexOf("\\"))); } else { file = new File(filePath, fileName.substring(fileName.lastIndexOf("\\")+1)); } item.write(file); out.println("Uploaded file: " + fileName); } } catch (Exception e) { e.printStackTrace(); } } %> </body> </html>
NOTE:
代码copy自网络,起初,processFileUpload.jsp中的List items = servlet.parseRequest(request);得到的总是空集合,网上也有很多遇到这种情况的,原因 在fileupload.jsp: name="fileSelected" , 如果没有name标记,commons fielupload不会作处理
servlet.setHeaderEncoding("UTF-8");中文名不会乱码
2. servlet上传
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; 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.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUploadServlet extends HttpServlet { private static final long serialVersionUID = 849325874174997377L; private static final int sizeThreshold = 1024*1024*1024; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(".....doGet....."); super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletContext ctx = this.getServletContext(); String filePath = ctx.getInitParameter("file_upload_dir"); factory.setRepository(new File(filePath)); factory.setSizeThreshold(sizeThreshold); ServletFileUpload upload = new ServletFileUpload(factory); try { @SuppressWarnings("unchecked") List<FileItem> list = upload.parseRequest(req); for(FileItem item : list) { String name = item.getFieldName(); if(item.isFormField()) { // String value = item.getString(); // req.setAttribute(name, value); } else { String value = item.getName(); String fileName = value.substring(value.indexOf("\\")+1); req.setAttribute(name, fileName); OutputStream os = new FileOutputStream(new File(filePath, fileName)); InputStream is = item.getInputStream(); byte[] buff = new byte[1024]; System.out.println("The length of " + value + " is " + item.getSize()); int length = 0; while((length = is.read(buff)) != -1) { os.write(buff, 0, length); } is.close(); os.close(); } } } catch (FileUploadException e) { e.printStackTrace(); } req.getRequestDispatcher("pages/upload_result.jsp").forward(req, resp); } }
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("init EncodingFilter...."); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); System.out.println("set the encoding to be utf-8 in EncodingFilter..."); chain.doFilter(request, response); } @Override public void destroy() { System.out.println("destroy EncodingFilter...."); } }
fileupload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Up load file</title> </head> <body> <form action="<%=request.getContextPath() %>/fileupload" method="post" enctype="multipart/form-data"> <input type="file" size="50" name="fileSelected"> <input type="submit" value="upload"> </form> </body> </html>
upload_result.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h3>File <%=request.getAttribute("fileSelected") %> uploaded successfully.</h3> </body> </html>
web.xml
<web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>file_upload_dir</param-name> <param-value>F:\files_uploaded</param-value> <description>Location to store uploaded files</description> </context-param> <filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.jesse.jsp.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>fileUploadServlet</servlet-name> <servlet-class>com.jesse.jsp.servlet.FileUploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>fileUploadServlet</servlet-name> <url-pattern>/fileupload</url-pattern> </servlet-mapping> </web-app>
发表评论
-
jsp通过session记录访问次数
2015-04-19 18:50 0<html> <head> & ... -
cookie实现记住密码
2015-04-19 08:51 0login.jsp <body> &l ... -
filter
2015-04-19 08:23 0常用的过滤器类型: 认证过滤器 数据压缩过滤 ... -
jsp请求处理
2015-04-19 07:52 0login.jsp <body> < ... -
jsp页面显示后台错误
2015-04-19 07:34 935web.xml <web-app> < ... -
JSP简单访问数据库
2015-04-19 06:36 817学习使用javaBean,代码很烂,仅为留个脚印 pub ... -
jsp
2015-04-19 03:45 737JSP初始化 容器载入JSP文件后,它会在为请求提供任 ...
相关推荐
【JSP上传文件Demo】是基于Java服务器页面(JSP)技术实现的一种文件上传功能的示例。在Web开发中,文件上传是一个常见的需求,例如用户上传头像、提交附件等。`SmartUpload`是一个流行的Java库,专门用于处理文件...
JSP上传文件(有进度条)可上传大文件 网上有很多文章都是jspsmart,由于jspsmart直接在内存中操作数据,如果上传大文件或多台计算机上传的话会出错,还有一些方法传得比较慢。 为了方便上传文件,本人写了一个传输...
"jsp上传文件样例"这个主题涉及到的是如何使用JSP处理客户端上传的文件,这在许多Web应用中是常见的需求,比如用户注册、照片分享、文档提交等场景。下面将详细介绍这个知识点。 1. **文件上传原理**: 文件上传的...
"Jsp上传文件所需jar包"这一主题聚焦于在JSP环境中实现文件上传所需的依赖库。在这个过程中,我们需要重点关注两个主要组件:Servlet和相关的第三方库。 首先,Servlet是Java EE规范的一部分,它允许服务器端处理...
"jsp上传文件完整版"这个标题表明我们将讨论一个全面的教程或示例,涵盖了从接收文件到保存在服务器上的整个过程。描述中的重复进一步强调了这是关于JSP文件上传的全面指南。 JSP文件上传主要涉及到以下几个关键...
在这个“一个jsp上传文件、下载文件的代码”示例中,我们主要探讨的是如何在MyEclipse开发环境中利用JSP实现文件的上传和下载功能。 文件上传是Web应用中常见的功能,常用于让用户提交图片、文档等数据。在JSP中,...
【标题】"jsp 上传文件源码"涉及的是在Java Web开发中使用JSP进行文件上传的技术。在Java Web应用程序中,用户有时需要上传图片、文档等文件到服务器,这时就需要借助于像JSP这样的技术来实现。JSP(JavaServer ...
"jsp上传文件模块"是JSP中常见的功能,它允许用户通过Web界面上传文件到服务器。这个模块在很多应用场景中非常实用,比如论坛、博客、同学录等,其中"同学录相片上传"就是一个具体的例子,它能让用户上传个人照片到...
首先,我们需要了解的是"jsp上传文件的组件"。在这个场景中,`jspsmart.jar`是一个关键的组件,它是一个专门用于处理文件上传的库。Jspsmart是由SmartUpload类组成的,这是一个开源的JSP文件上传解决方案,提供了...
在JSP中,我们通常会创建一个表单让用户选择要上传的文件,然后通过Servlet或JSP后台处理文件上传。 要实现文件上传进度的显示,我们需要以下步骤: 1. **配置Servlet**:在web.xml中配置一个专门处理文件上传的...
标题"jsp上传文件所需jar包.zip"指的是这个压缩包中包含了用于JSP文件上传的必要依赖。其中,`commons-fileupload-1.3.2.jar`是Apache Commons FileUpload的最新版本,它提供了解析HTTP请求中的多部分数据和处理文件...
这个"快速JSP上传文件"的主题就围绕这个核心展开。 首先,了解文件上传的基本流程: 1. 用户在表单中选择文件,表单以`multipart/form-data`编码类型提交。 2. 服务器端的Servlet接收到请求后,解析请求体中的多...
5. **遍历上传文件**:使用SmartUpload提供的方法,你可以获取每个上传文件的信息,并进行进一步处理,如保存到服务器的特定位置: ```java int filesCount = smart.getFilesCount(); for (int i = 0; i ; i++) {...
综上所述,这个"jsp上传文件带进度条(源码项目)"展示了如何使用JSP、Java Servlet和JavaScript技术实现无刷新的文件上传功能,提供丰富的上传进度反馈,提升了用户体验。对于开发者来说,这是一个学习和研究文件上传...
【标题】"纯jsp上传文件到服务器(利用了struts)"所涉及的知识点主要集中在Web开发领域,尤其是Struts框架的应用以及文件上传的实现。Struts是Apache组织下的一个开源项目,它是一个基于MVC(Model-View-Controller...
【JSP上传文件项目实例详解】 在Web开发中,用户经常需要上传文件,例如图片、文档等。在Java环境中,我们通常使用JSP(JavaServer Pages)来构建前端交互界面,结合Servlet处理后端逻辑。本项目实例将详细介绍如何...
当我们谈到“jsp上传文件的一些参考”,这是一个关于如何在JSP中实现文件上传功能的主题。在实际应用中,文件上传功能通常用于让用户提交图片、文档等数据到服务器,比如用户注册时上传头像或者在线投稿等场景。 ...
【标题】"jsp上传文件cos资源"涉及到的主要技术是JavaServer Pages(JSP)与腾讯云对象存储服务(COS)。这是一个使用JSP技术实现文件上传,并将上传的文件存储到腾讯云COS上的解决方案。 **JSP(JavaServer Pages...
本实例主要探讨如何使用JSP来实现文件上传的功能,特别是针对图片、文档等类型的文件。文件上传是一个常用的需求,例如用户在网站上提交个人信息时可能需要上传头像或简历。以下将详细介绍如何使用JSP进行文件上传。...