最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java使用smortupload上傳和下載文件

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

smortupload

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

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

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

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

//        初始化請(qǐng)求和響應(yīng)對(duì)象
        su.initialize(this.getServletConfig(),req,resp);
//       創(chuàng)建一個(gè)新的請(qǐng)求對(duì)象
        Request req1 = su.getRequest();

通過smortupload組件中的upload上傳

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

獲取到上傳的文件對(duì)象(注意這個(gè)對(duì)象所在的包)

Files fs  = su.getFiles();
//        獲取第一個(gè)文件
        File f = fs.getFile(0);
//        獲取文件名稱
        String fname = f.getFileName();

把上傳的文件保存到指定的位置,這里的路徑推薦是使用相對(duì)路徑

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

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

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

注意這里拿到的是一個(gè)二進(jìn)制的數(shù)據(jù),所以我們?cè)诖嫒霐?shù)據(jù)庫之前要進(jìn)行轉(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è)置為通用的二進(jìn)制流
        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上傳和下載文件的詳細(xì)內(nèi)容,更多關(guān)于java smortupload上傳下載文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java畫筆的簡單實(shí)用方法

    Java畫筆的簡單實(shí)用方法

    這篇文章主要介紹了Java畫筆的簡單實(shí)用方法,需要的朋友可以參考下
    2017-09-09
  • Spring Controller接收前端JSON數(shù)據(jù)請(qǐng)求方式

    Spring Controller接收前端JSON數(shù)據(jù)請(qǐng)求方式

    這篇文章主要為大家介紹了Spring Controller接收前端JSON數(shù)據(jù)請(qǐng)求方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java?Base64?加密與解密示例代碼

    Java?Base64?加密與解密示例代碼

    基本的加密盡量保持簡單,加密輸入字符串沒有增加任何換行符。輸出被映射到“A-Za-z0-9+/”字符集中,解密從該字符集中解析為任意字符,這篇文章主要介紹了Java?Base64?加密與解密,需要的朋友可以參考下
    2022-12-12
  • 整理java讀書筆記十五之java中的內(nèi)部類

    整理java讀書筆記十五之java中的內(nèi)部類

    內(nèi)部類是指在一個(gè)外部類的內(nèi)部再定義一個(gè)類。類名不需要和文件夾相同。本文給大家分享java讀書筆記十五之java中的內(nèi)部類,對(duì)java讀書筆記相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • java明文密碼三重加密方法

    java明文密碼三重加密方法

    這篇文章主要介紹了java明文密碼加密,對(duì)一個(gè)明文密碼進(jìn)行了三重加密:第一層?xùn)艡谝淮?,第二層在柵欄一次,第三層在一次摩斯加密,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Java8時(shí)間處理進(jìn)階:Duration與Period深度剖析時(shí)間與日期間隔實(shí)戰(zhàn)

    Java8時(shí)間處理進(jìn)階:Duration與Period深度剖析時(shí)間與日期間隔實(shí)戰(zhàn)

    本文全面剖析Java8日期時(shí)間API中的兩大核心類——Duration和Period,從基礎(chǔ)創(chuàng)建到高級(jí)實(shí)戰(zhàn),深入講解時(shí)分秒納秒級(jí)時(shí)間間隔與年月日期間隔的精準(zhǔn)計(jì)算方法,包含計(jì)時(shí)器、年齡計(jì)算、合同到期提醒等真實(shí)業(yè)務(wù)案例,助你徹底掌握J(rèn)ava8時(shí)間間隔處理技巧
    2026-04-04
  • Java責(zé)任鏈模式模板代碼分享

    Java責(zé)任鏈模式模板代碼分享

    這篇文章主要介紹了Java責(zé)任鏈模式模板代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Java中泛型的用法總結(jié)

    Java中泛型的用法總結(jié)

    這篇文章主要介紹了Java中泛型的用法,實(shí)例總結(jié)了java中泛型的常見使用技巧,需要的朋友可以參考下
    2015-06-06
  • Java實(shí)現(xiàn)圖片比對(duì)算法

    Java實(shí)現(xiàn)圖片比對(duì)算法

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖片比對(duì)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java面向?qū)ο蠡A(chǔ)實(shí)例詳解

    Java面向?qū)ο蠡A(chǔ)實(shí)例詳解

    本篇詳細(xì)介紹了類與對(duì)象的概念、構(gòu)造函數(shù)的使用、this關(guān)鍵字的作用以及封裝和static關(guān)鍵字的用法,幫助初學(xué)者快速掌握面向?qū)ο缶幊痰暮诵乃枷?感興趣的朋友一起看看吧
    2026-06-06

最新評(píng)論

扬州市| 双辽市| 樟树市| 西宁市| 桂东县| 曲水县| 宜良县| 印江| 汉阴县| 日土县| 略阳县| 渝中区| 琼海市| 平远县| 长岭县| 博野县| 广元市| 博罗县| 北安市| 萨嘎县| 弋阳县| 桦川县| 堆龙德庆县| 惠东县| 车险| 武隆县| 黄山市| 会宁县| 壶关县| 顺平县| 城步| 登封市| 隆安县| 托克逊县| 刚察县| 吴忠市| 土默特左旗| 交口县| 万年县| 西平县| 南靖县|