servlet web3.0文件上传
来源:互联网 发布:风景线打印软件注册 编辑:程序博客网 时间:2024/04/27 20:07
servlet web3.0文件上传
在web3.0以前,文件上传基本上市通过common-fileupload或者SmartUpload。上传比较麻烦,在Servlet 3.0 中不需要导入任何第三方jar包,并且提供了很方便进行文件上传的功能。
注:
1. html中 <input type="file">表示文件上传控件;
2. form的 enctype="multipart/form-data";
3.在Servlet类前加上 @MultipartConfig
4.servlet中用request.getPart()获得;
下面是一个文件上传的例子:
upload.jsp源码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>web3.0文件上传</title></head><body><div><form method="post" enctype="multipart/form-data" action="uploadServlet.do">名称:<input type="text" id="name" name="name" /> <br>上传:<input type="file" id="file" name="file" /> <br><input type="submit" value="提交" /></form></div></body></html>
UploadServlet.java源码:
package cn.ifly.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;import cn.ifly.utils.UploadUtil;@WebServlet(name = "uploadServlet", urlPatterns = { "/uploadServlet.do" })@MultipartConfigpublic class UploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html; charset=utf-8");response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();String name = request.getParameter("name");Part part = request.getPart("file");out.println("文本框内容名称:" + name + "<br />");out.println("此文件的大小:" + part.getSize() + "<br />");out.println("此文件类型:" + part.getContentType() + "<br />");out.println("文件名称:" + UploadUtil.getFileName(part) + "<br />");part.write("D:\\1." + UploadUtil.getFileType(part));}}
UploadUtil.java(由于在Servlet 3.0中很难获取上传文件的类型,因此我写了UploadUtil工具类,可以方便获得上传文件的类型和上传文件的名称)
package cn.ifly.utils;import javax.servlet.http.Part;/** * 文件上传工具类,根据Part对象得到文件的类型和文件的名称 * * @desc: web3.0_fileupload * @author: kpchen * @createTime: 2014年11月10日 下午9:48:10 * @history: * @version: v1.0 */public class UploadUtil {public static String getFileType(Part p) {String name = p.getHeader("content-disposition");String fileNameTmp = name.substring(name.indexOf("filename=") + 10);String type = fileNameTmp.substring(fileNameTmp.indexOf(".") + 1,fileNameTmp.indexOf("\""));return type;}public static String getFileName(Part p) {String name = p.getHeader("content-disposition");String fileNameTmp = name.substring(name.indexOf("filename=") + 10);String fileName = fileNameTmp.substring(0, fileNameTmp.indexOf("\""));return fileName;}}
0 0
- servlet web3.0文件上传
- servlet web3.0文件上传 (二)
- Eclipse-web3.0里使用注解上传文件。文本
- WEB3-servlet
- web3.0使用注解定义Servlet
- web3.0
- web3.0
- web3.0
- servlet多文件上传文件(servlet3.0上传方式)
- Flex + servlet 上传文件
- JSP+servlet上传文件
- servlet文件上传
- Servlet文件上传
- Servlet上传文件
- 文件上传servlet应用
- jsp servlet文件上传
- 文件上传Servlet实例
- Servlet文件上传代码
- poj 1204——Word Puzzles
- 基础知识以及数组
- 【解惑】编程到底有什么用?
- 使用Lex和Yacc开发C语言的编译器
- 学习编程有什么前景?
- servlet web3.0文件上传
- 编程是什么?
- poj-1990
- 网络分析工具Wireshark Network Analyzer
- Histogram of Oriented Gradients and Object Detection
- java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.<init>(L
- 编程技术
- 发布HTML5 RTS游戏-古代战争 v0.1
- 关于编程:学什么和如何学