一、JSP + Servlet 实现简单的文件上传:
1、使用的jar包:commmons-fileupload.jar
2、Jsp页面:enctype="multipart/form-data"
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript">
function validator(){
var file = document.getElementById("file").value;
if(file == null || file == ""){
alert('请选择需要上传的文件');
return false;
}
return true;
}
</script>
</head>
<body>
<form method="post" name="upload" enctype="multipart/form-data" action="upload" onsubmit="return validator();">
<input id="file" name="file" type="file" value="请选择上传文件"/>
<input type="submit" value="上传" />
</form>
</body>
</html>
2、Servlet实现:
public class Upload extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) {
String tempDirectory = "d:\\temp\\"; // 临时文件夹:上传成功之前存放缓存的位置
String fileDirectory = "d:\\uploadFiles\\"; // 文件存放目录
try {
// 将未完全上传成功的信息放到指定的临时文件夹
File repositoryFile = new File(tempDirectory);
int sizeThreshold = 1024 * 64; // 写满该大小的缓存后,存入硬盘中。
FileItemFactory factory = new DiskFileItemFactory(sizeThreshold,
repositoryFile);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(500*1024*1024); //set every upload file size <500Mb
List items = upload.parseRequest(request); // 这里开始执行上传
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
File uploadedFile = new File(fileDirectory + item.getName());
item.write(uploadedFile);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3、web.xml配置:
<servlet>
<servlet-name>fileUpload</servlet-name>
<servlet-class>test.Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>fileUpload</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
==================================================================================================
二、JSP + Struts1实现文件上传:
1、Form表单:
public class UploadFileForm extends ActionForm{
FormFile uploadFile;
public FormFile getUploadFile() {
return uploadFile;
}
public void setFormFile(FormFile uploadFile) {
this.uploadFile = uploadFile;
}
}
2、 Action:
public class UploadAction extends Action{
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UploadFileForm uploadFileForm = (UploadFileForm) form;
FormFile file = uploadFileForm.getUploadFile();
String fileName = file.getFileName();
InputStream is = file.getInputStream();
OutputStream os = new FileOutputStream("D:\\" + fileName);
while (is.read() != -1) {
os.write(is.read());
}
return super.execute(mapping, form, request, response);
}
}
3、Jsp:file的name属性与Form表单中FormFile名称对应。
4、web.xml:ActionServelet的配置
5、struts-config.xml:action配置
==================================================================================================
三、JSP + Struts2实现文件上传
Action实现:
public class UploadAction extends ActionSupport {
private File upload;
private String uploadFileName;
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String upload() throws IOException {
InputStream is = new FileInputStream(upload);
OutputStream os = new FileOutputStream("D:\\" + uploadFileName);
while (is.read() != -1) {
os.write(is.read());
}
}
}
关于文件上传中文乱码的问题:Struts从request里利用BeanUtils.populate()把值赋给form的时候已经是乱码的,所以赋值之前要进行编码的转换。可以通过写过滤器进行编码的设置。
分享到:
相关推荐
JSP+servlet实现的文件上传, 有详细注释, 需要MyEclipse5.5或更高
swfupload多文件上传jsp+servlet,内有web.xml配置方式,以及代码
jsp+javabean+servlet+ajax,数据分页显示,使用SERVLET完成增删改查操作, 文件、图片上传,使用smartUpload组件完成上传操作。 MVC模式 非常适合初学者;
JSP+servlet文件上传简单案例 JSP+servlet文件上传简单案例
使用mvc模式设计,jsp+servlet开发,同时可以上传两个文件,也可以自己修改下代码上传多个文件,在Servlet中使用开源fileupload包实现文件上传功能
Java网站开发(jsp+servlet)笔记,里面还包括EL表达式,JSTL标签库的使用,网站文件上传的源代码截图等
实现swfupload多文件上传,并可以实现SSH集成或使用servlet配置使用
定点定时长音乐播放系统,带进度条的文件批量上传(jquery+plupload+jsp+servlet),该系统没有使用数据库,不需要过多的配置就可以使用,在项目中有一个文档,说明该系统的使用方法与注意事项。
采用MVC模式,在jsp+servlet+service+DAO架构的基础上,实现了互联网上网络相册的绝大部分功能,如用户管理,相片分类,相册管理,相片的评论管理,上传及删除相片文件等。 附加java源代码
本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...
jsp+servlet实现文件上传和下载,需要使用commons-fileupload,commons-io.jar java库文件
适用于简单的javaweb期末课程设计。包含功能如下所示。 1)前端功能 图书的分类展示;...其中包含系统使用前必读、包含课程设计报告,包含数据库sql文件,可以参考报告内容了解本系统的具体实现等。
JSP+servlet文件上传 rar格式
功能: 发表文章 评论文章 照片上传 权限管理
页面+处理的SERVLET代码 需要jspSmartUpload组件
完整的JSP+Servlet实现文件的上传下载
jsp+servlet文件上传数据库和下载
系统会从数据库中读取字符串内容然后生成下载到本地,实现的功能有:登陆,注册,管理员管理用户界面(冻结,解冻,注销),管理员管理文件界面(删除,审核(在做)),然后是用户管理自己的文件界面,有上传,下载...
管理员角色包含以下功能:管理员登录,主页面,分类查看,修改个人信息,上传小说,查看小说,删除小说,评论顶收藏小说等功能。 用户角色包含以下功能:用户注册,用户登录,查看销售,查看小说,发布小说,搜索小说,查看个人...
JSP+servlet上传文件有 进度条 比较好用