Servlet文件上传
2015-07-18 16:55
232 查看
Servlet文件上传,简单点儿说,就是客户端的浏览器将要上传的文件发送到服务器端,服务器根据类型解析发过来的数据,进行不同的处理。
实现一个简单的文件上传:
首先JSP页面:
<body>
<form action="u" method="post" enctype="MULTIPART/FORM-DATA">
<input type="text" name="username"></br>
<input type="file" name="file"></br>
<input type="file" name="file"></br>
<input type="submit" value="OK">
</form>
</body>
其中注意form表单的method只能是post,enctype值固定为"MULTIPART/FORM-DATA",四个input分别为一个文本框,两个文件,一个提交按钮。
然后,web.xml为一个简单的Servlet配置: <servlet>
<servlet-name>up</servlet-name>
<servlet-class>servlet.upload.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>up</servlet-name>
<url-pattern>/u</url-pattern>
</servlet-mapping>
UploadServlet类,处理文件上传:
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//设置编码,放置乱码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//本地磁盘的存储路径
DiskFileItemFactory factory = new DiskFileItemFactory();
String path = req.getRealPath("/files");
factory.setRepository(new File(path));
//处理文件上传的主要类
ServletFileUpload upload = new ServletFileUpload(factory);
try {
//获得request中的数据
List<FileItem> items = upload.parseRequest(req);
Iterator<FileItem> iterator = items.iterator();
while (iterator.hasNext()) {
FileItem item = iterator.next();
//判断类型
if (item.isFormField()) {
//此处得到文本框的值,我们不作处理
String fieldName = item.getFieldName();
String value = item.getString();
System.out.println("fieldname :" + fieldName);
System.out.println("value :" + value);
} else {
//得到的是文件类型
//上传文件的文件名
String name = item.getName();
System.out.println("filename :" + name);
item.write(new File(path, name));
}
}
} catch (Exception e) {
}
}
}
其中,DiskFileItemFactory主要是存储在本地的路径信息,就是上传上来的文件要放在哪个地方。
ServletFileUpload用来解析request中的信息,将浏览器发送过来的信息封装成一个个的item,然后根据item的类别进行处理。
实现一个简单的文件上传:
首先JSP页面:
<body>
<form action="u" method="post" enctype="MULTIPART/FORM-DATA">
<input type="text" name="username"></br>
<input type="file" name="file"></br>
<input type="file" name="file"></br>
<input type="submit" value="OK">
</form>
</body>
其中注意form表单的method只能是post,enctype值固定为"MULTIPART/FORM-DATA",四个input分别为一个文本框,两个文件,一个提交按钮。
然后,web.xml为一个简单的Servlet配置: <servlet>
<servlet-name>up</servlet-name>
<servlet-class>servlet.upload.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>up</servlet-name>
<url-pattern>/u</url-pattern>
</servlet-mapping>
UploadServlet类,处理文件上传:
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
//设置编码,放置乱码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//本地磁盘的存储路径
DiskFileItemFactory factory = new DiskFileItemFactory();
String path = req.getRealPath("/files");
factory.setRepository(new File(path));
//处理文件上传的主要类
ServletFileUpload upload = new ServletFileUpload(factory);
try {
//获得request中的数据
List<FileItem> items = upload.parseRequest(req);
Iterator<FileItem> iterator = items.iterator();
while (iterator.hasNext()) {
FileItem item = iterator.next();
//判断类型
if (item.isFormField()) {
//此处得到文本框的值,我们不作处理
String fieldName = item.getFieldName();
String value = item.getString();
System.out.println("fieldname :" + fieldName);
System.out.println("value :" + value);
} else {
//得到的是文件类型
//上传文件的文件名
String name = item.getName();
System.out.println("filename :" + name);
item.write(new File(path, name));
}
}
} catch (Exception e) {
}
}
}
其中,DiskFileItemFactory主要是存储在本地的路径信息,就是上传上来的文件要放在哪个地方。
ServletFileUpload用来解析request中的信息,将浏览器发送过来的信息封装成一个个的item,然后根据item的类别进行处理。
相关文章推荐
- .net文件上传时实现通过文件头确认文件类型的方法
- asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输
- ASP的chr(0)文件上传漏洞原理和解决方法介绍
- javascript实现校验文件上传控件实例
- 分享20多个很棒的jQuery 文件上传插件或教程
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- js jquery分别实现动态的文件上传操作按钮的添加和删除
- asp.net HTML文件上传标签
- PHP中文件上传的一个问题
- 与文件上传有关的php配置参数总结
- jsp和servlet的区别探讨
- Serv-U中禁止某类文件上传的设置方法
- PHP 文件编程综合案例-文件上传的实现
- 在服务端进行目录建立、删除,文件上传、删除的过程的php代码
- jsp中点击图片弹出文件上传界面及预览功能的实现
- php文件上传表单摘自drupal的代码
- PHP中,文件上传
- PHP学习文件处理与文件上传 课件第1/2页