Smartupload 实现文件的上传与下载

本文介绍了如何利用Smartupload库进行文件上传和下载操作。首先,导入SmartUpload.jar依赖,创建upload目录作为文件存储位置。接着,创建上传界面并设置enctype属性。在Servlet中处理上传请求,保存文件到服务器的upload目录。对于文件下载,编写下载页面,并实现对应的Servlet,完成文件的下载功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、导入jspSmartUpload.jar包。
2、在项目中创建上传文件夹upload,用来保存上传的文件的保存路径
    我的项目的结构图如下:
这里写图片描述

文件上传

3、编写上传界面。必须要设置ectype=“multipart/form-data”表示以二进制形式提交

<form action="UpAndDownServlet" enctype="multipart/form-data" method="post">
        <input type="file" name="file"> <input type="submit" value="上传">
</form>

4、编写相应的上传servlet代码
(1)、创建SmartUpload对象
(2)、初始化创建的SmartUpload对象
(3)、进行文件的上传
(4)、把上传的文件保存到服务器上相应的文件夹,我这里创建的是upload文件夹

@WebServlet("/UpAndDownServlet")
public class UpAndDownServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    //因为文件上传是通过form表单提交,method为post,所以上传操作要写在doPost方法中
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1、创建SmartUpload对象
        SmartUpload smartUpload = new SmartUpload();

        //2、初始化创建的SmartUpload对象
        smartUpload.initialize(getServletConfig(), request, response);

        try {
            //3、进行文件的上传
            smartUpload.upload();

            //4、把上传的文件保存到服务器上相应的文件夹,我这里创建的是upload文件夹
            String fileSavePath = request.getServletContext().getRealPath("upload");    //  得到upload文件夹的路径

            SmartFiles files = smartUpload.getFiles();                                  //得到所有上传的文件
            for (int i = 0; i < files.getCount(); i++) {                                //遍历所有上传的每一个文件
                SmartFile curFile = files.getFile(i);                                   //得到当前上传的文件

                //为了防止重名文件的bug,我们这里采用文件上传的时候作为文件名来保存
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                String filename = simpleDateFormat.format(new Date());

                String fileExt = curFile.getFileExt();                                  //获得当前文件的后缀名
                String lastFilePath = fileSavePath + "/" + filename + "." + curFile;    //当前文件的存储路径

                curFile.saveAs(lastFilePath);
            }


        } catch (SmartUploadException e) {
            e.printStackTrace();
        }


    }

}

文件下载

3、编写下载的jsp界面

<a href="UpAndDownServlet?down=1.png">1.png</a>

4、编写文件下载对应的servlet代码

//因为下载视通过<a>标签链接的,所以采用的是doGet方法。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //1、创建SmartUpload对象
    SmartUpload smartUpload = new SmartUpload();

    //2、初始化创建的SmartUpload对象
    smartUpload.initialize(getServletConfig(), req, resp);

    //3、文件下载(同时需要得到文件的下载路径。通过 下载的jsp页面的a连接的URL?后面的参数获得对应的文件名)
    String filename = req.getParameter("down");         //获得要下载的文件名
    String fileSavePath = req.getServletContext().getRealPath("upload");    //因为文件是保存在服务器的upload文件夹中的,所以要获得文件夹的路径
    String lastDownPath = fileSavePath + "/" + filename;    //得到文件下载的最终路径
    try {
        smartUpload.downloadFile(lastDownPath);             //进行下载
    } catch (SmartUploadException e) {
        e.printStackTrace();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值