Spring框架學習筆記(7)——Spring Boot 實現上傳和下載

最近忙着都沒時間寫博客了,做了個項目,實現了下載功能,沒用到上傳,寫這篇文章也是順便參考學習了如何實現上傳,上傳和下載做一篇筆記吧

下載

主要有下面的兩種方式:

  • 通過ResponseEntity 實現
  • 通過寫HttpServletResponse的OutputStream實現

我只測試了ResponseEntity<InputStreamResource>這種方法可行,另外一種方法請各位搜索資料。

我們在controller層中,讓某個方法返回ResponseEntity,之後,用戶打開這個url,就會直接開始下載文件

這裏,封裝了一個方法export,負責把File對象轉為ResponseEntity

public ResponseEntity<FileSystemResource> export(File file) {
    if (file == null) {
        return null;
    }
    HttpHeaders headers = new HttpHeaders();
    headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
    headers.add("Content-Disposition", "attachment; filename=" + System.currentTimeMillis() + ".xls");//以時間命名文件,防止出現文件存在的情況,根據實際情況修改,我這裡是返回一個xls文件
    headers.add("Pragma", "no-cache");
    headers.add("Expires", "0");
    headers.add("Last-Modified", new Date().toString());
    headers.add("ETag", String.valueOf(System.currentTimeMillis()));

    return ResponseEntity
            .ok()
            .headers(headers)
            .contentLength(file.length())
            .contentType(MediaType.parseMediaType("application/octet-stream"))
            .body(new FileSystemResource(file));
}

Controller

@RequestMapping("download")
public ResponseEntity<FileSystemResource> downloadFile() {
    return export(new FIle());//這裏返回調用export的結果
}

上傳

1.配置

spring boot使用上傳功能,得先進行配置,spring boot配置方式有兩種,一種是資源文件properties配置,另外一種方式則是yml配置

properties配置:

## MULTIPART (MultipartProperties)
# 開啟 multipart 上傳功能
spring.servlet.multipart.enabled=true
# 文件寫入磁盤的閾值
spring.servlet.multipart.file-size-threshold=2KB
# 最大文件大小
spring.servlet.multipart.max-file-size=200MB
# 最大請求大小
spring.servlet.multipart.max-request-size=215MB

yml配置:

spring:
    servlet:
        multipart:
          enabled: true # 開啟 multipart 上傳功能
          max-file-size: 200MB # 最大文件大小
          max-request-size: 215MB # 最大文件請求大小
          file-size-threshold: 2KB # 文件寫入磁盤的閾值

2.編寫url請求

controller

@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) {
    if (file.isEmpty()) {
        return "上傳失敗,請選擇文件";
    }

    String fileName = file.getOriginalFilename();
    String filePath = "/Users/itinypocket/workspace/temp/";//文件上傳到服務器的路徑,根據實際情況修改
    File dest = new File(filePath + fileName);
    try {
        file.transferTo(dest);
        LOGGER.info("上傳成功");
        return "上傳成功";
    } catch (IOException e) {
        LOGGER.error(e.toString(), e);
    }
    return "上傳失敗!";
}

3.Web頁面上傳文件

注意,input標籤的name與url的請求參數名相同,上傳只能使用post請求
單個文件上傳:

<form method="post" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file"><br>
    <input type="submit" value="提交">
</form>

多個文件上傳:

input標籤加上multiple屬性,即可一次選擇多個文件

<form method="post"  action="/upload" enctype="multipart/form-data">
    <input type="file" multiple name="file"><br>
    <input type="submit" value="提交">
</form>

4.Android端上傳文件

使用okhttp上傳文件

RequestBody filebody = RequestBody.create(MediaType.parse("application/octet-stream"), file);
RequestBody body = new MultipartBody.Builder()
        .addFormDataPart("file", file.getName(), filebody)
        .build();
Request request = new Request.Builder()
        .url("http://192.168.1.106:8080/webapp/fileUploadPage")
        .post(body)
        .build();

Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        Log.e(TAG, "請求失敗:" + e.getMessage());
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        Log.e(TAG, "請求成功!");
    }
});

參考鏈接:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專營大陸空運台灣貨物推薦

台灣空運大陸一條龍服務

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

彰化搬家費用,南投搬家費用,距離,噸數怎麼算?達人教你簡易估價知識!

萬向電動車有望2017年進入中國市場

日前,有媒體報導稱,萬向收購菲斯科之後的首款車型將命名為Karma Revero,將由萬向旗下的Karma公司在美國生產,計畫7月或8月正式亮相,年底前開始銷售。如果不出意外,大約到2017年,將以進口方式正式進入中國市場銷售。

雖然這款車的價格還沒有確定,但是其競爭對手應該就是特斯拉的Model 3。

萬向製造的首款電動乘用車不僅將競爭對手指向特斯拉,其銷售模式也有望複製特斯拉。目前,萬向正在考慮是否使用直銷的模式來進行銷售。

同時,萬向還模仿特斯拉的管理手段,從通用等跨國公司挖掘高管,負責產品研發、財務、行銷等部門。據瞭解,目前,萬向在美國加州建設的電動車工廠,已進入生產線的試運行階段,將於6月投產。

靜待生產資質

萬向之所以在美國建廠生產,不僅是為兌現收購菲斯科時的承諾,而且也是無奈之舉。

資料顯示,萬向能夠順利收購菲斯科,是因為其在向美國政府提出的《復興計畫》中明確,將在美國建廠解決一些當地就業問題。

更重要的是,目前,萬向並沒有獲得在國內生產電動乘用車的生產資質。

實際上,萬向收購A123和菲斯科後,其轉型計畫就已啟動,在先後獲得專用車和客車生產資質後,電動專用車和電動客車已投入使用。業內有觀點認為,雖然製造電動乘用車和電動商用車有一定差距,但在供應鏈方面可以實現部分共用。

同時,有消息稱,此前萬向已製造了少量電動乘用車,並在杭州試運行,運行的資料和資料也會成為萬向電動乘用車量產的重要支撐。

由此來看,未來,萬向國內工廠的生產條件,以及依託A123電池技術、菲斯科車身技術、寶馬動力總成技術打造的電動車能夠獲得我國相關部門的認可,獲得電動乘用車生產資質,其電動乘用車計畫也將快速成型。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專營大陸空運台灣貨物推薦

台灣空運大陸一條龍服務

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

彰化搬家費用,南投搬家費用,距離,噸數怎麼算?達人教你簡易估價知識!

沒有狗不愛!德商推「蟲蟲大餐」飼料 環保又好吃

摘錄自2018年10月07日聯合新聞網報導

狗貓嗜肉會威脅到人類生存,有些寵物食品新創公司首先推出永續狗食,主打以昆蟲製成高蛋白、低碳排放的零食。

柏林一家新的寵物食品公司以「蟲蟲力量」(insect power)為口號,帶給全球愛狗飼主新希望。飼主餵養愛犬的食物可從二氧化碳高排放的牛內臟,換成高蛋白的蒼蠅幼蟲,這樣一來小狗的大量「掌足跡」便可在一夕之間減少。

加拿大前獸醫薇若妮卡‧格洛里厄(Veronique Glorieux)和來自西班牙的吉瑪‧亞帕奇歐(Gema Arpacio)推出狗食公司Eat Small的想法很間單,由蒼蠅幼蟲蛋白質製成的一份狗食僅生成一克的溫室氣體,相較之下,生產一份一公斤的牛肉卻製造1000公斤的二氧化碳。這是因為昆蟲需要更少的食物、水與空間,而且還不會製造甲烷。

德國另一家環保寵物零食公司「Tenetrio」,其利用榖蟲來製作飼料。Tenetrio表示,穀蟲幾乎零排放,而且可100%消化不留廢物。

雖然人類可能難以擁抱蟲蛋白,但小狗可更快適應。格洛里厄說:「我們還沒遇到不喜歡我們家零食的小狗。」

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

國際級報告:暖化守住1.5 °C有可能 但須「前所未有的努力」

環境資訊中心記者 鄒敏惠報導

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

鋰消費預估將大幅增長,智利鋰生產商冀望提高產量

摘錄自2018年10月8日科技新報報導

智利《時代評判者報》(La Tercera)10 月 6 日報導,智利核能委員會拒絕了全球最大的鋰生產商美商雅寶化學(Albemarle Corporation)提高鋰生產配額的請求。

智利主要的鋰資源位於阿塔卡馬鹽沼(Salar de Atacama),鋰蘊藏量佔全球 27%。該國主要的鋰生產商包括智利化學礦業公司(Sociedad Quimicay Minera de Chile,SQM)以及美商雅寶公司近年都已經向政府申請提高產量。

全球鋰需求正以創紀錄的速度增長,以碳酸鋰約當量計算的鋰消費量從 2012 年的 14.9 萬噸增加至 2017 年的 21.1 萬噸,年均增長率為 8%;預期至 2027 年,將大幅增長達到 126.5 萬噸,年均增長率將近 5 成,

預估,全球電動車產量將迅速增長,2017 年全球電動車產量已經倍增至 200 萬輛,而至 2027 年,預期將會超過 4,000 萬輛。 2007 年,鋰電池的消費已經占整體鋰消費的 25% 比重;而至 2027 年,將提高近 90% 比重,主要都是源於電動車生產大幅增長的影響。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

逼近育種極限? 美國母豬脫垂死亡案例暴增

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

指標生物也會失靈 學者:氣候變遷讓海洋污染更難監測

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

車諾比設太陽電廠 能源供烏克蘭

摘錄自2018年10月10日台灣醒報報導

車諾比核事故30年後,太陽能進駐發電。稍早由烏克蘭與德國合作的太陽能發電計畫已在車諾比電廠原址興建太陽能板,預計初期可提供2000戶家庭使用,減少對俄羅斯天然氣的依賴。電廠主管也指出,在災難之地重新設置太陽能電廠,象徵意義非常重大。

據《雪梨晨鋒報》報導,由烏克蘭電力公司Rodina與德國工程公司Enerparc組成的Solar Chernobyl,已在車諾比電廠第4座反應爐旁打造1座新的太陽能電廠。這座新的太陽能發電廠可生產1MW電力足夠2,000戶家庭使用,未來發電規模還將提高到100MW。

據悉,雙方之所以選擇該廠址是因為土地非常便宜而且與烏克蘭現有電網連結,烏克蘭政府也提供2500公頃周圍土地以便增建太陽能電廠。

據《Engadget》報導,車諾比核能發電廠自從2000年後便正式不再發電,電廠主管沙伊達指出,「原本以為就此不再運作,但現在似乎發出新芽,在這裡發電非常令人喜悅。」

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

日調查:地鐵PM2.5濃度 最高值約地上5倍

摘錄自2018年10月13日中央社報導

日本慶應大學團隊在地下鐵監測細懸浮微粒(PM2.5)的污染情況發現,地下鐵PM2.5濃度的最大值約是地上的5倍,這可能與地下鐵煞車時,車輪或鐵軌會產生磨削等情況有關。

日本放送協會(NHK)報導,人如果持續吸入細懸浮微粒PM2.5的話,可能影響呼吸器官或循環器官。日本從九年前開始制訂戶外大氣中的環境標準,加強監視大氣中的環境,但目前還沒制定有關地下鐵、地下街、屋內等封閉場所標準,也不太清楚實際狀況。

以慶應大學准教授奧田明知為首的研究團隊,獲得橫濱市交通局協助,在橫濱市內的地下鐵月台進行PM2.5調查,時間是7月17日上午5時到晚上8時。

結果發現,從第一班地鐵電車開始,PM2.5的濃度就開始上升,每立方公尺每小時的平均濃度,上午9時到10時之監視最高的,約120微克,是同時間地上的約5倍。

調查得知,從上午6時起的14個小時,平均濃度約80微克,是日本環境省訂定PM2.5空氣品質標準的約2.3倍。環境省所訂定的PM2.5空氣品質標準是24小時平均值為35微克/每立方公尺。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!

長灘島今起試營運 菲官員指不再是化糞池

摘錄自2018年10月15日中央社報導

封島6個月的菲律賓旅遊勝地長灘島將於26日起測試開放,今(15日)起先對菲國遊客展開10天測試營運。菲國環境部長希瑪圖宣告,長灘島不再是化糞池。

菲律賓總統杜特蒂(Rodrigo Duterte)今年2月怒斥長灘島為「化糞池」,政府部門4月下旬起封島6個月進行環境及硬體改造工程,特別是重整污水處理及排水系統。試營運期間希瑪圖指出,長灘島海水已適合游泳,大腸桿菌最大或然值從半年前的每100毫升100萬個降到18.1個。

長灘島目前只准許當地及周邊省份遊客前往,島上林姓台商指出,長灘島將分3階段開放,先是26日的測試開放,然後是明年4月第二階段開放,明年12月才會全面開放。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

桃園市搬家公司協助各大專院校學生返鄉打包,詳細優惠專案請洽詢…

※助你輕鬆搞定搬家鳥事!