您的位置:首页 > Web前端 > JavaScript

JSP文件上传

2015-09-22 06:39 519 查看
概述:

文件上传是网站中很常用的一个功能,下面是一个文件上传的基本demo。

由于是使用的新版jar包,所以需要依赖以下几个jar包:

catalina.jar

commons-fileupload-1.3.1.jar

commons-io-2.4.jar

public class UpLoadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**
* 该方法用于文件上传
* @jar catalina.jar commons-fileupload-1.3.1.jar commons-io-2.4.jar
*/
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");

/*
* 文件上传逻辑
*/
//创建DiskFileItemFactory对象,为解析器提供解析时的一些缺省配置
DiskFileItemFactory dfif = new DiskFileItemFactory();
//创建解析器
ServletFileUpload sfu = new ServletFileUpload(dfif);
//使用解析器解析分析器
try {
//解析request请求
List<FileItem> items = sfu.parseRequest(request);

for(FileItem item : items) {
//如果是普通表单类
if(item.isFormField()) {
continue;
}
//执行上传文件动作
//根据servlet上下文获得服务器中实际物理路径
//此处可以更改为其他另存为的路径
String path = getServletContext().getRealPath("/upload");
//获取文件名
String fileName = item.getName();
//获取文件后缀
String fileSuffix = fileName.substring(fileName.lastIndexOf("."));
//设置当前系统时间毫秒数的值为文件名(无需考虑同步,几率极其低)
String newName = Calendar.getInstance().getTimeInMillis()+fileSuffix;

//File.separator是获取一个兼容操作系统路径的"/"
File file = new File(path+File.separator+newName);

try {
//写入文件
item.write(file);
} catch (Exception e) {
e.printStackTrace();
}

}
} catch (FileUploadException e) {
e.printStackTrace();
}

}

}


jsp页面代码

<!-- enctype="multipart/form-data"表示不对上传的消息进行编码 -->
<form action="upload.do" enctype="multipart/form-data" method="post">
<input type="file" name="fileName">
<input type="submit" value="提交">


这里注意:上传后的文件是上传到TomCat中该的项目的目录中的upload文件夹,如果将TomCat上项目移除,上传的文件也会随之消失。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: