欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用smortupload上傳和下載文件

 更新時間:2023年07月28日 14:17:06   作者:梁俊豪2021強化班  
這篇文章主要介紹了java使用smortupload上傳和下載文件實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

smortupload

smortupload是一套上傳組件包,可以輕松實現(xiàn)上傳及下載功能,可以限制上傳文件的類型,也可以輕易得到文件的后綴名。smortupload是以jar包的形式給出的,再使用的時候要放到web的lib目錄下進行配置使用。由于要上傳文件,則必須對表單進行封裝,因為傳遞的不是普通的二進制文件。在from標簽里要使用enctype="multipart/form-data"轉(zhuǎn)成二進制的文件

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

將表單提交到servlet后不能再時使用原先方法里面的請求和響應(yīng)對象,要初始化smortupload組件里的請求和響應(yīng)對象,首先創(chuàng)建smortupload對象

//        創(chuàng)建smortupload對象
        SmartUpload su = new SmartUpload();

//        初始化請求和響應(yīng)對象
        su.initialize(this.getServletConfig(),req,resp);
//       創(chuàng)建一個新的請求對象
        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();
        }

使用上面新創(chuàng)建的請求對象獲取到表單里面的參數(shù)

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

注意這里拿到的是一個二進制的數(shù)據(jù),所以我們在存入數(shù)據(jù)庫之前要進行轉(zhuǎn)碼,使用utf-8的編碼格式

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

然后連接數(shù)據(jù)庫就可以了。

文件的下載

// 獲取需要下載的文件名
        String filename = req.getParameter("filename");
        // 得到文件地址
        String url = "/uploadfile/"+filename;
        // 將響應(yīng)的內(nèi)容設(shè)置為通用的二進制流
        resp.setContentType("application/octet-stream");
        // attachment 告訴瀏覽器以附件的方式下載文件(彈出下載框)
        filename = URLEncoder.encode(filename,"utf-8");
        resp.addHeader("Content-Disposition","attachment;filename="+filename);

        // 發(fā)送
        req.getRequestDispatcher(url).forward(req,resp);

        // 清空緩存區(qū):將服務(wù)端緩存區(qū)的文件內(nèi)容,立即傳送給客戶端
        resp.flushBuffer();

到此smortupload的上傳和下載結(jié)束。

以上就是java使用smortupload上傳和下載文件的詳細內(nèi)容,更多關(guān)于java smortupload上傳下載文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • @Transactional遇到try catch失效的問題

    @Transactional遇到try catch失效的問題

    這篇文章主要介紹了@Transactional遇到try catch失效的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 一文帶你了解Java中IO流與Guava的使用

    一文帶你了解Java中IO流與Guava的使用

    Java為我們提供了非常多的操作IO的接口與類,幫助開發(fā)者實現(xiàn)不同源間的數(shù)據(jù)傳輸,比如硬盤文件、網(wǎng)絡(luò)傳輸、應(yīng)用調(diào)用間的數(shù)據(jù)交互與傳遞。今天我們來簡單了解下Java中的流?以及在Guava工具包中,針對IO操作做了什么樣的封裝與設(shè)計
    2022-11-11
  • Java實現(xiàn)調(diào)用外部程序的示例代碼

    Java實現(xiàn)調(diào)用外部程序的示例代碼

    本文主要介紹了Java實現(xiàn)調(diào)用外部程序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Java集合遍歷實現(xiàn)方法及泛型通配

    Java集合遍歷實現(xiàn)方法及泛型通配

    這篇文章主要介紹了Java集合遍歷實現(xiàn)方法及泛型通配,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • FilenameUtils.getName?函數(shù)源碼分析

    FilenameUtils.getName?函數(shù)源碼分析

    這篇文章主要為大家介紹了FilenameUtils.getName?函數(shù)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • java中String字符串刪除空格的七種方式

    java中String字符串刪除空格的七種方式

    在Java中從字符串中刪除空格有很多不同的方法,本文主要介紹了java中String字符串刪除空格的七種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 利用java實現(xiàn)二叉搜索樹

    利用java實現(xiàn)二叉搜索樹

    這篇文章主要介紹了利用java實現(xiàn)二叉搜索樹,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • SpringMVC中文件的上傳與下載詳細解析

    SpringMVC中文件的上傳與下載詳細解析

    這篇文章主要介紹了SpringMVC中文件的上傳與下載詳細解析,在開發(fā)中有遇到文件上傳下載的功能需求,今天就來說一下前后端的實現(xiàn)和要注意的地方,需要的朋友可以參考下
    2024-01-01
  • Java項目之java+springboot+ssm實現(xiàn)理財管理系統(tǒng)設(shè)計

    Java項目之java+springboot+ssm實現(xiàn)理財管理系統(tǒng)設(shè)計

    這篇文章主要介紹了Java項目java+springboot+ssm實現(xiàn)理財管理系統(tǒng)設(shè)計,使用了當前較為流行的spring boot,spring,spring mvc,mybatis,shiro框架分頁處理使用了pagehelper進行操作,需要的朋友可以參考一下
    2022-03-03
  • SpringBoot下的值注入(推薦)

    SpringBoot下的值注入(推薦)

    這篇文章主要介紹了SpringBoot下的值注入(推薦)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評論