- 浏览: 564508 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
原文地址:http://blog.csdn.net/shuwei003/article/details/6742332
upload.jsp
[plain] view plaincopy
<%@page contentType="text/html;charset=utf-8" %>
<head>
<title>fbysss UploadBean 示例</title>
<!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"-->
<!--meta http-equiv="Content-Type" content="text/html; charset=gb2312"-->
</head>
<FORM name="form1" METHOD="POST" ACTION="adddata" ENCTYPE="multipart/form-data">
附件
<input name="attach" type="FILE" id="attach" size="50" />
<input name="ok" type= "submit" value="提交">
</form>
web.xml
[plain] view plaincopy
<servlet>
<servlet-name>AddDataServlet</servlet-name>
<servlet-class>com.upload.action.AddDataServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddDataServlet</servlet-name>
<url-pattern>/adddata</url-pattern>
</servlet-mapping>
AddDataServlet.java
[java] view plaincopy
package com.upload.action;
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.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class AddDataServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String tempDirectory = "d:/temp/"; //要在最后加上斜杠:temp/,缓存文件目录
try {
int sizeThreshold = 1024 * 64; //写满该大小的缓存后,存入硬盘中。
File repositoryFile = new File(tempDirectory);
FileItemFactory factory = new DiskFileItemFactory(sizeThreshold, repositoryFile);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8"); //设置字符编码
upload.setSizeMax(50 * 1024 * 1024); // set every upload file'size less than 50M
List items = upload.parseRequest(request); //这里开始执行上传
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); //FileItem就是表示一个表单域。
if(item.isFormField()){ //isFormField方法用于判断FileItem是否代表一个普通表单域(即非file表单域)
System.out.println("***"+item.getFieldName());
}else {
//String fieldName = item.getFieldName(); //获取表单域name属性的值
//String fileName = item.getName(); //返回该文件在客户机上的文件名。e.g: e:\dianying\\video\1.wmv
//System.out.println("*****"+fieldName);
//System.out.println("*****"+fileName);
String path = item.getName();
String fileName = path.substring(path.lastIndexOf("\\"));
File uploadedFile = new File("d:/video/" + fileName);
item.write(uploadedFile);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
upload.jsp
[plain] view plaincopy
<%@page contentType="text/html;charset=utf-8" %>
<head>
<title>fbysss UploadBean 示例</title>
<!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"-->
<!--meta http-equiv="Content-Type" content="text/html; charset=gb2312"-->
</head>
<FORM name="form1" METHOD="POST" ACTION="adddata" ENCTYPE="multipart/form-data">
附件
<input name="attach" type="FILE" id="attach" size="50" />
<input name="ok" type= "submit" value="提交">
</form>
web.xml
[plain] view plaincopy
<servlet>
<servlet-name>AddDataServlet</servlet-name>
<servlet-class>com.upload.action.AddDataServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddDataServlet</servlet-name>
<url-pattern>/adddata</url-pattern>
</servlet-mapping>
AddDataServlet.java
[java] view plaincopy
package com.upload.action;
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.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class AddDataServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String tempDirectory = "d:/temp/"; //要在最后加上斜杠:temp/,缓存文件目录
try {
int sizeThreshold = 1024 * 64; //写满该大小的缓存后,存入硬盘中。
File repositoryFile = new File(tempDirectory);
FileItemFactory factory = new DiskFileItemFactory(sizeThreshold, repositoryFile);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8"); //设置字符编码
upload.setSizeMax(50 * 1024 * 1024); // set every upload file'size less than 50M
List items = upload.parseRequest(request); //这里开始执行上传
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); //FileItem就是表示一个表单域。
if(item.isFormField()){ //isFormField方法用于判断FileItem是否代表一个普通表单域(即非file表单域)
System.out.println("***"+item.getFieldName());
}else {
//String fieldName = item.getFieldName(); //获取表单域name属性的值
//String fileName = item.getName(); //返回该文件在客户机上的文件名。e.g: e:\dianying\\video\1.wmv
//System.out.println("*****"+fieldName);
//System.out.println("*****"+fileName);
String path = item.getName();
String fileName = path.substring(path.lastIndexOf("\\"));
File uploadedFile = new File("d:/video/" + fileName);
item.write(uploadedFile);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
发表评论
-
HTTP协议之multipart/form-data请求分析
2015-11-09 17:41 770原文地址:http://blog.csdn ... -
Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
2015-10-30 18:01 1054原文地址:http://blog.csdn.net/mmllk ... -
过滤器和拦截器的区别
2015-10-30 18:00 660原文地址:http://blog.163.com/hzd_lo ... -
过滤器、监听器、拦截器的区别
2015-10-30 17:59 597原文地址:http://blog.csdn.net/x_yp/ ... -
【JSP】让HTML和JSP页面不缓存的方法
2015-10-14 10:16 487原文地址:http://blog.csdn.net/juebl ... -
jsp去掉浏览器缓存
2015-10-14 09:21 629原文地址:http://bbs.csdn.net/topics ... -
pageContext对象的用法
2015-09-04 21:24 709原文地址:http://blog.csdn.net/warcr ... -
log4j日志文件乱码问题的解决方法
2015-01-06 18:11 827原文地址:http://blog.csdn.net/inkfi ... -
JEECMS 系统权限设计
2014-09-05 16:25 945原文地址:http://chinajweb.iteye.com ... -
Servlet 实现文件的上传与下载
2014-08-12 14:44 889原文地址:http://www.2cto.com/kf/201 ... -
android文件上传到服务器
2014-08-12 11:03 396代码非原创,fix了bug,完善的还是需要再思量: /** * ... -
常用社交网络(SNS、人人网、新浪微博)动态新闻(feed、新鲜事、好友动态)系统浅析
2014-08-05 15:09 936原文地址:http://blog.csdn.net/sunme ... -
Feed系统架构资料收集
2014-08-05 15:08 623原文地址:http://blog.csdn ... -
微博feed系统推拉模式和时间分区拉模式架构探讨
2014-08-05 14:47 416原文地址:http://www.csdn.net/articl ... -
spring 出错,Could not find acceptable representation
2014-08-03 14:41 1530原文地址:http://www.myexception.cn/ ... -
spring @ResponseBody 返回json格式有关问题
2014-08-03 14:20 637原文地址:http://www.myexception.cn/ ... -
httpclient上传文件及传参数
2014-07-27 14:02 1197原文地址:http://hyacinth.blog.sohu. ... -
在eclipse中把java工程变为web工程
2014-06-27 11:18 710项目上点鼠标右键->properties->Pro ... -
配置Tomcat直接显示目录结构和文件列表
2014-06-10 13:52 733配置Tomcat直接显示目录结构和文件列表 TomcatSe ... -
压力测试工具apache-ab讲解
2012-10-16 09:59 727最近在做webservices,得到的数据是从德国那边的服务器 ...
相关推荐
总结来说,Servlet实现文件上传功能涉及了HTTP协议、Servlet API的使用、文件I/O操作、安全性考量以及用户交互优化等多个方面。通过深入理解和实践这些知识点,我们可以构建出健壮、安全的文件上传功能。
文件上传功能允许用户在Web表单中选择本地文件并将其发送到服务器进行存储或处理。 首先,我们需要了解HTTP协议中的多部分/形式数据(Multipart/form-data)。在文件上传场景下,HTML表单通常设置`enctype=...
在本文中,我们将探讨如何利用COS(可能是腾讯云对象存储服务)Servlet来上传文件到服务器。这个过程通常涉及客户端和服务器端两个主要部分:客户端负责选择并发送文件,而服务器端则接收文件并处理上传请求。 1. *...
这里的`FileService`是业务逻辑层的服务,它负责具体的文件操作,如保存到本地或上传到云服务。 对于本地存储,`FileService`可能会有如下实现: ```java @Service public class FileService { public void ...
这段代码首先获取到上传的文件Part,然后得到文件名,最后将其保存到服务器指定的路径。在实际应用中,你可能还需要添加异常处理、文件大小限制、文件类型检查等安全措施。 在部署Web应用时,需要确保`web.xml`配置...
1. 文件大小限制:为了防止大文件导致服务器内存溢出,我们需要设定上传文件的最大大小。 2. 文件类型检查:验证用户上传的文件类型,避免安全风险,如上传恶意脚本。 3. 文件重命名:为避免文件名冲突,通常会对...
这个Servlet的主要任务是接收KindEditor上传的图片文件,保存到服务器的指定目录,并返回一个包含图片URL的JSON响应。以下是一个简单的Servlet示例: ```java import javax.servlet.http.HttpServletRequest; ...
在“Servlet处理上传文件过程”中,我们需要编写一个Servlet来接收这些数据。Servlet通过Override `doPost` 方法来处理POST请求,其中`HttpServletRequest`对象可以用来读取请求体中的文件内容。通常,我们会使用`...
为了实现图片上传,Flex前端可能会使用FileReference类,它提供了读取本地文件并上传到服务器的能力。FileReference对象可以监听“uploadCompleteData”事件,当文件上传成功时触发。同时,通过Flash Player的...
后端服务器(如Java Servlet或Spring MVC Controller)接收到请求后,可以使用前面提到的Java文件操作API处理上传的文件,并将其保存到服务器的指定位置。 对于文件下载,HTML中可以创建一个链接,指向服务器上的...
1. 图片上传:用户在前端上传图片,Servlet接收并保存到服务器指定目录。 2. 图片展示:Servlet读取服务器上的图片文件并返回给前端,jQuery负责在页面上显示。 **源码分析** 在博文链接中,可能包含以下内容: 1. ...
在Web开发中,用户经常需要上传文件,例如图片、文档等。为了提供更好的用户体验,引入了文件上传进度条的功能,让用户能实时了解上传进度,增强交互性和反馈效果。本主题将详细探讨如何在JSP(JavaServer Pages)和...
在Java Web开发中,文件上传是一项常见的功能,用于允许用户上传本地文件到服务器。本教程将专注于使用Servlet来实现文件上传。Servlet是Java提供的一种服务器端编程接口,它能够处理HTTP请求并返回响应。在不依赖...
接着,设置被动模式以避免防火墙问题,然后使用FTPClient的storeFile()方法将本地文件上传到服务器。确保在完成所有操作后断开连接,并妥善处理异常情况。 ```java FTPClient ftpClient = new FTPClient(); try { ...
为了安全起见,你应该限制上传文件的大小和类型,避免恶意用户上传大文件或者有害文件。可以使用`FileUpload`的配置方法来限制大小,也可以通过文件名检查文件类型。 总之,Java Servlet配合Apache Commons ...
文件上传是Web应用程序中的常见功能,允许用户将本地文件传输到服务器。在Servlet中,我们通常使用`HttpServletRequest`对象的`getPart()`方法来处理文件上传。这个方法是Java Servlet 3.0及以上版本引入的,使得...
4. **处理上传后逻辑**:在Servlet中,你可以根据需求执行各种操作,如验证文件类型、大小,或者将文件保存到数据库等。 在提供的文件名列表中,`MoreFileUpLoadServlet.java`和`OneFileUpLoadServlet.java`可能...
实践中,还可能涉及到安全性优化,如使用MIME类型检查防止恶意文件上传,使用CDN存储图片以减轻服务器压力,以及使用session或cookie进行用户验证等。总的来说,理解和熟练掌握`JSP`和`Servlet`的配合使用,对于开发...
本示例将详细讲解如何实现一个简单的文件上传功能,将图片上传至服务器,并将图片的URL保存到数据库中。 首先,我们需要在Spring Boot项目中引入所需的依赖。对于文件上传,Spring Boot本身提供了`spring-boot-...
在Android应用开发中,我们经常需要处理文件的上传和下载功能,特别是在涉及到用户交互和数据交换的场景。这里,我们将探讨如何使用Android客户端与Servlet服务器端配合,实现图片的上传和下载。 首先,让我们理解...