java使用smortupload上传和下载文件

 更新时间:2023年07月28日 14:17:06   作者:梁俊豪2021强化班  
这篇文章主要介绍了java使用smortupload上传和下载文件实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

smortupload

smortupload是一套上传组件包,可以轻松实现上传及下载功能,可以限制上传文件的类型,也可以轻易得到文件的后缀名。smortupload是以jar包的形式给出的,再使用的时候要放到web的lib目录下进行配置使用。由于要上传文件,则必须对表单进行封装,因为传递的不是普通的二进制文件。在from标签里要使用enctype="multipart/form-data"转成二进制的文件

<form action="/newbook" method="post" id="register" name="upload" enctype="multipart/form-data">

将表单提交到servlet后不能再时使用原先方法里面的请求和响应对象,要初始化smortupload组件里的请求和响应对象,首先创建smortupload对象

//        创建smortupload对象
        SmartUpload su = new SmartUpload();

//        初始化请求和响应对象
        su.initialize(this.getServletConfig(),req,resp);
//       创建一个新的请求对象
        Request req1 = su.getRequest();

通过smortupload组件中的upload上传

//        上传过程
        try {
            su.upload();
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }

获取到上传的文件对象(注意这个对象所在的包)

Files fs  = su.getFiles();
//        获取第一个文件
        File f = fs.getFile(0);
//        获取文件名称
        String fname = f.getFileName();

把上传的文件保存到指定的位置,这里的路径推荐是使用相对路径

try {
            su.save("D:/Java/BookShop/web/img/bookpicture");
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }

使用上面新创建的请求对象获取到表单里面的参数

String bookname = req1.getParameter("bookname");

注意这里拿到的是一个二进制的数据,所以我们在存入数据库之前要进行转码,使用utf-8的编码格式

String bookname1 = new String(bookname.getBytes(),"utf-8");

然后连接数据库就可以了。

文件的下载

// 获取需要下载的文件名
        String filename = req.getParameter("filename");
        // 得到文件地址
        String url = "/uploadfile/"+filename;
        // 将响应的内容设置为通用的二进制流
        resp.setContentType("application/octet-stream");
        // attachment 告诉浏览器以附件的方式下载文件(弹出下载框)
        filename = URLEncoder.encode(filename,"utf-8");
        resp.addHeader("Content-Disposition","attachment;filename="+filename);

        // 发送
        req.getRequestDispatcher(url).forward(req,resp);

        // 清空缓存区:将服务端缓存区的文件内容,立即传送给客户端
        resp.flushBuffer();

到此smortupload的上传和下载结束。

以上就是java使用smortupload上传和下载文件的详细内容,更多关于java smortupload上传下载文件的资料请关注脚本之家其它相关文章!

相关文章

  • java 中如何实现 List 集合去重

    java 中如何实现 List 集合去重

    这篇文章主要介绍了java 中如何实现 List 集合去重,List 去重指的是将 List 中的重复元素删除掉的过程,下文操作操作过程介绍需要的小伙伴可以参考一下
    2022-05-05
  • SpringCloud Feign Jackson自定义配置方式

    SpringCloud Feign Jackson自定义配置方式

    这篇文章主要介绍了SpringCloud Feign Jackson自定义配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java使用HashMap实现斗地主(有序版)

    java使用HashMap实现斗地主(有序版)

    这篇文章主要为大家详细介绍了java使用ArrayList实现斗地主游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • Maven 仓库国内镜像源收藏(小结)

    Maven 仓库国内镜像源收藏(小结)

    这篇文章主要介绍了Maven 仓库国内镜像源收藏(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解springboot整合ehcache实现缓存机制

    详解springboot整合ehcache实现缓存机制

    这篇文章主要介绍了详解springboot整合ehcache实现缓存机制,ehcache提供了多种缓存策略,主要分为内存和磁盘两级,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 解析java中的condition

    解析java中的condition

    Condition 将 Object 监视器方法(wait()、notify()和notifyAll())分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set)
    2021-06-06
  • mybatis快速入门学习教程新手注意问题小结

    mybatis快速入门学习教程新手注意问题小结

    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。接下来通过本文给大家介绍mybatis快速入门学习教程新手注意问题小结,需要的朋友可以参考下
    2017-02-02
  • JavaWeb Servlet实现文件上传与下载功能实例

    JavaWeb Servlet实现文件上传与下载功能实例

    因自己负责的项目中需要实现文件上传,所以下面下面这篇文章主要给大家介绍了关于JavaWeb Servlet实现文件上传与下载功能的相关资料,需要的朋友可以参考下
    2022-04-04
  • Spring中Bean的加载与SpringBoot的初始化流程详解

    Spring中Bean的加载与SpringBoot的初始化流程详解

    这篇文章主要介绍了Spring中Bean的加载与SpringBoot的初始化流程详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java设计模式系列之装饰者模式

    java设计模式系列之装饰者模式

    这篇文章主要为大家详细介绍了java设计模式之装饰者模式,装饰者模式是一种结构式模式,感兴趣的朋友可以参考一下
    2016-02-02

最新评论