表单上传文件步骤

该博客介绍了如何使用Servlet处理文件上传。首先,需要引入commons-fileupload和commons-io的jar包。在HTML表单中,需设置enctype属性为multipart/form-data,并添加file类型的input字段。在Servlet端,由于数据以字节形式传输,不能直接用request.getParameter获取内容。要创建FileUpload工厂,设定缓存大小和目标文件路径,然后通过工厂创建解析器解析request对象,获取FileItem列表,最后保存文件。

所需jar包:
commons-fileupload.jar
commons-io.jar
下载链接

form:
1.必须添加 enctype 属性,值为:multipart/form-data;
2.将作为上传框的 input 标签设置 type=”file”

servlet:(当表单添加了 enctype=”multipart/form-data” 属性,请求时的数据以字节的形式传输,所以对应的servlet中不能使用 request.getParameter(“param”) 得到表单项内容)
1.创建工厂

DiskFileItemFactory factory = new DiskFileItemFactory(15 * 1024, 
                new File("f:/temp"));

第一个参数为缓存区大小,第二个参数为缓存目标文件(必须存在),也可以不添加参数。
2.使用工厂创建解析器

ServletFileUpload sfu = new ServletFileUpload(factory);

3.解析request对象,得到List< FileItem >

List<FileItem> fileItemList = sfu.parseRequest(request);

其中每一个 FileItem 封装着一个表单项内容

4.保存文件

            //得到目录,是要保存到硬盘上的,所以要得到真实路径
            String savepath = this.getServletContext().getRealPath("/book_img");
            //得到名称,使用下标得到文件上传表单项
            String filename = CommonUtils.uuid() + "_" + fileItemList.get(1).getName();

            //使用目录和名称创建目标文件
            File dest = new File(savepath, filename);
            //保存文件到目标目录
            fileItemList.get(1).write(dest);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值