原文:http://zhidao.baidu.com/question/263826186.html
public String uploadFile(HttpServletRequest request){
try {
DiskFileItemFactory factory= new DiskFileItemFactory();
ServletFileUpload upload= new ServletFileUpload(factory);
List<FileItem> list = upload.parseRequest(request);
String encoding=request.getCharacterEncoding();
upload.setHeaderEncoding(encoding);
upload.setFileSizeMax(fileMaxSize);
for(FileItem fileItem : list){
String fileName = fileItem.getFieldName();
if(fileItem.isFormField()){
if("send".equals(fileName)){
edto.setSend(fileItem.getString(encoding));
}
if("incept".equals(fileName)){
edto.setIncept(fileItem.getString(encoding));
}
if("theme".equals(fileName)){
edto.setTheme(fileItem.getString(encoding));
}
if("letter".equals(fileName)){
edto.setLetter(fileItem.getString(encoding));
}
}
else{
if("file".equals(fileName)){
String sourceFilePath = fileItem.getName();
if(sourceFilePath!=""){
if(fileItem.getSize()>fileMaxSize){
return "文件过大,不能上传!";
}
HttpSession session =request.getSession();
String serverPath = session.getServletContext().getRealPath("");
String savePath = serverPath + "\\userfile";
String saveFileName =GetSaveFileName.getFileName(edto.getIncept(),edto.getSend(),sourceFilePath);
InputStream in = fileItem.getInputStream();
edto.setSaveFileName(saveFileName);
this.saveFile(savePath,saveFileName, in);
}
}
}
}
保存上传的文件到服务器:
//保存文件到服务器
private void saveFile(String savePath,String saveFileName,InputStream in) throws IOException{
File file=new File(savePath);
if(!file.exists()){
file.mkdirs();
}
FileOutputStream out =new FileOutputStream(savePath+"\\"+saveFileName);
byte [] b =new byte[1024];
int len = in.read(b);
while(len!=-1){
out.write(b, 0, len);
out.flush();
len = in.read(b);
}
out.close();
in.close();
}
分享到:
相关推荐
假如一个场景,用户上传文件,某些用户网速较慢,同时存在100个这样的用户,如果BIO且最大线程设为100会导致线程用完。NIO怎么来解决这个问题? 本实例采用tomcat8作为容器,开启异步servlet读写事件,解决高并发IO...
以上就是使用Servlet上传文件流并保存到数据库的基本流程。实际应用中可能还需要处理一些额外的问题,比如错误处理、文件大小限制、文件类型检查等。同时,为了提高性能和安全性,可以考虑使用连接池管理数据库连接...
"Servlet上传文件并显示进度条"这个主题涵盖了如何在用户上传大文件时提供实时进度反馈,以增强用户体验。在这个过程中,我们需要处理以下几个核心知识点: 1. **Multipart解析器**:Servlet 3.0及以上版本引入了...
总的来说,利用COS Servlet上传文件涉及到客户端的表单提交和服务器端的Servlet处理,需要对HTTP协议、文件上传、MultipartRequest以及可能的业务逻辑有深入理解。同时,确保在实现过程中充分考虑安全性,以提供健壮...
总结来说,实现"JSP+servlet上传文件有进度条"需要结合JSP、Servlet、文件上传库(如Commons-FileUpload)以及前端的AJAX和JavaScript技术。通过异步请求和实时的进度反馈,为用户提供流畅的文件上传体验。在实际...
"Java 实现利用 HTTP 基于 Servlet 上传文件至服务器" 文件上传概述 文件上传是指客户端将文件传输到服务器端的过程。在 Web 开发中,文件上传是非常常见的操作,例如上传头像、上传文件等。在 Java 中,可以使用 ...
servlet上传文件详细解析 大家好好看
上载文件.轻松搞定.java Servlet上传文件.
"servlet上传文件(后)"这个标题暗示我们将探讨的是如何使用Servlet接收并处理客户端上传的文件。这篇博客可能详细解释了文件上传的后端处理过程,包括数据解析、文件保存以及异常处理等环节。 首先,我们需要了解...
在处理文件上传需求时,JSP通常作为前端界面,而Servlet则负责后端逻辑处理。本篇文章将深入探讨如何使用JSP与Servlet进行文件上传,并特别关注如何解决中文文件名乱码的问题。 首先,我们需要理解文件上传的基本...
自己写的servlet上传文件demo,有注释方便学习。 包含commons-io 和 commons-fileupload 架包 jdk大于等于1.6可直接用,如果jdk版本小于1.6请换一个低版本io的架包即可
Servlet上传文件原理: Servlet在Java Web开发中是服务器端处理HTTP请求的核心组件。在文件上传场景下,Servlet接收客户端通过POST请求发送的多部分/形式数据(multipart/form-data)。Servlet API提供`...
本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...
在现代Web应用中,用户经常需要上传文件,如图片、文档等。为了提供更好的用户体验,开发者通常会采用AJAX(Asynchronous JavaScript and XML)技术实现异步文件上传,避免传统方式下页面刷新带来的中断感。AJAX允许...
- **文件大小限制**:设置上传文件的最大大小,防止恶意大文件上传导致服务器资源耗尽。 - **文件类型检查**:只允许特定类型的文件上传,例如只接受图片文件,防止恶意文件上传。 - **文件名处理**:避免使用原始...
本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...
Servlet在处理HTTP请求时,可以解析请求体中的multipart/form-data数据,这是上传文件通常使用的格式。你可以使用Commons FileUpload库来处理这个任务。首先,创建一个DiskFileItemFactory来配置临时存储和大小限制...
servlet上传文件实现代码详解 servlet上传文件是指将客户端的文件上传到服务器端,服务器端使用servlet来处理上传的文件。下面是servlet上传文件的实现代码详解。 首先,需要了解上传文件的基本概念。上传文件时,...
在IT行业中,JSP(JavaServer Pages)和Servlet是用于...总的来说,通过结合JSP、Servlet和AJAX技术,我们可以构建出一个优雅的文件上传系统,它不仅可以处理文件上传,还能提供实时的进度反馈,极大地提升了用户体验。
* 4)高水平的API文件上传处理 ServletFileUpload upload = new ServletFileUpload(factory); * 目的是调用 parseRequest(request)方法 获得 FileItem 集合list , * * 5)在 FileItem 对象中 获取信息, ...