利用Servlet3.0的特性上传文件

1.在表单中上传文件或图片时,因为文件和图片大小大于1k,因此不能使用get方法上传,所以要将传递方式改为“post”,而且要加上enctype=”multipart/form-data”,告诉服务器可以接受多样的表单的上传类型

<form action="http://localhost:8080/servletTest/FileUpload" method="post" enctype="multipart/form-data">
        <input type="file" name="image">
        <input type="submit">
        <img src=""/>   
    </form>

2.在接受的servlet中,要设置接收文件的路径(multipartConfig为了方便修改,可以写到web.xml文件中)

//这是servlet的映射路径
@WebServlet("/FileUpload")
//这是文件的存储路径
@MultipartConfig(location="e:/")

3.修改文件名称,并写入指定路径中

public class FileUpload extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //获取类型为image的数据文件 
        Part part=request.getPart("image");   
        //获取提交文件的名称
        String filename=part.getSubmittedFileName();
        //获取文件的类型   
        String fixname = filename.substring( filename.lastIndexOf(".") ); 
        //为上传文件生成一个独一的名称part.write(name+fixname);     
        String name=UUID.randomUUID().toString();
        //将文件命名为name+fixname
        part.write(name+fixname); 
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值