初学Java Web(7)——文件的上传和下载

本文介绍了Java Web中文件上传和下载的实现,包括使用Apache FileUpload组件进行文件上传,解决中文乱码、文件大小约束等问题,以及SmartUpload组件的快速入门。同时,讲解了文件下载的处理方法。
摘要由CSDN通过智能技术生成

文件上传

文件上传前的准备
  • 在表单中必须有一个上传的控件
    <input type="file" name="testImg"/>
  • 因为 GET 方式有请求大小的限制,所以表单的提交方式必须是 POST
    <form action="/upload" method="post">
  • 表单默认的编码方式为 application/x-www-form-urlencoded ,应该修改为 multipart/form-data以二进制的形式进行数据的传输
    <form action="/upload" method="post" enctype="multipart/form-data">
  • 注意:此时 Servlet 中就不能再使用 request对象.getParameter(String name) 来获取请求参数
上传组件

实现文件的上传,需要基于以下两种组件的一种:

  • Apache FileUpload 组件【操作比较复杂】
  • SmartUpload 组件【操作比较简单,但存在一些问题】

基于 FileUpload 组件

使用基于Apache FileUpload上传组件实现文件的上传,步骤:

1.将必要的 jar 包导入到项目中
commons-fileupload-1.2.2.jar
commons-io-1.4.jar
2.简单写好 upload.jsp 上传页面:

<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" import="java.util.*" %>
<html>
<head>
    <title>文件的上传和下载</title>
</head>
<body>

文件上传:
<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="testImg"/> <br>
    <input type="submit"/>
</form>

</body>
</html>

3.编写 UploadServlet 处理相关请求:

package servlet;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Htt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值