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日台灣醒報烏克蘭報導

車諾比將啟用太陽能發電廠!自1986年的核災後,車諾比一直給世人荒蕪的印象,但在烏克蘭政府給予土地與收購電價的獎勵下,「車諾比太陽能」公司將在車諾比啟用一座一百萬瓦產能的太陽能電廠。

據了解,烏克蘭當局向車諾比太陽能公司提供了2, 500公頃的便宜土地,並承諾會以歐盟價格的1.5倍收購電力,也被外界認為是為了要斬斷對俄羅斯天然氣的依賴。

車諾比太陽能公司是由烏克蘭的羅迪納能源與德國的Enerparc AG能源共同合作的計畫。烏克蘭國家投資委員會主席柯伐林夫指出,企業2018年對烏克蘭綠色能源的投資比2017年多出了兩倍,與國會預計在2019年取消對綠色能源的補貼有關,屆時新建的綠色能源將不再擁有減稅優惠。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

加拿大最大煉油廠爆炸引發大火 起因不明

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

加拿大當地媒體報導,新布朗斯威克省(New Brunswick)聖約翰(St. John’s)爾文煉油廠(Irving Oil refinery)今天(8日)發生爆炸引發大火,這起爆炸和大火僅造成幾起輕傷。

爾文煉油廠是加拿大最大煉油廠,每日產能達30萬桶。相關影響及大火原因目前仍待調查。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

日環境相稱正探討塑膠袋收費 便利商店業者表示擔憂

摘錄自2018年10月7日共同社報導

日本環境相原田義昭在5日的記者會上強調稱,為大幅削減國內產生的塑膠垃圾,「應探討規定必須實施塑膠袋收費制」。不過,關於具體時間和方式,他僅表示「希望關注(正在探討該問題的)中央環境審議會的討論,並做出最終判斷」。有關與對此表示擔憂的零售行業等的協調,他表示「希望盡全力應對」。

物流巨頭永旺先於其他公司,已在超市等停止免費發放塑膠袋。截至2018年2月底,旗下29家公司約1600家店舖已實施收費制。據悉,每個塑膠袋收費3日元或5日元,客人自帶購物袋的比例為64.8%。伊藤洋華堂所有店舖從2013年2月起實行每個塑膠袋收費2日元。

另一方面,便利商店行業對收費持消極態度。由於上班或回家途中光顧的客人較多,與前往超市時相比,未攜帶購物袋的情況更多。據分析,每人每次平均購買600日元左右商品時需為每個塑膠袋支付幾日元的情況會令客人方面感到負擔,這也是一大原因。

關於寫入日本政府「塑膠資源循環戰略」中的具體措施,中央環境審議會預計將在年內彙總大致框架。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

兩艘貨船在地中海碰撞 已造成燃油外洩

摘錄自2018年10月8日中時電子報報導

美聯社報導,兩艘大型貨船在法國科西嘉島北部相撞,導致大範圍的漏油污染,法國和義大利當局正在設法控制污染面積。

法國海事當局發表聲明指出,事故貨船的船籍分別是突尼西亞與賽浦路斯,從法國海軍發布的一張事故照片來看,突尼西亞貨船的船頭,直接撞向賽浦路斯貨船的舷側,雖然事故中沒有人員受傷,但是把突尼西亞貨船砸出了幾公尺長的破洞,也就造成了大量燃油外洩。

漏油造成了4公里長、數百公尺寬的污染面積,從科西嘉島向西北方向,接近法國和義大利的海岸。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

打擊空污、垃圾食物 全球政府領導人因應「非傳染性疾病」

環境資訊中心外電;姜唯 翻譯;林大利 審校;稿源:ENS

9月底聯合國大會揭開序幕,世界衛生組織(WHO)成員國承諾加強因應非傳染性疾病,包括癌症、心肺疾病、中風和糖尿病,並透過減少食物中的鹽、糖和反式脂肪來促進心理健康和福祉。

WHO指出,非傳染性疾病(noncommunicable disease,NCDs)的增加主要由四大風險因素驅動——抽菸、缺乏運動、酒精濫用和不健康的飲食。



不健康的飲食導致非傳染性疾病。Photo by NeONBRAND on Unsplash。

9月27日,聯合國大會舉行了第三次非傳染性疾病預防和控制高級會議,審查全球和各國制訂相關因應措施的進度。大會要求,食品製造商務必在包裝營養標示上清楚說明成分,並避免向兒童推銷不健康的食品和飲料。

各國領導人同意為自己國家非傳染性疾病的預防和治療負起責任,並一致認同應透過健全的法律和財政措施,保護人們免受菸草、不健康食品和其他有害產品的侵害,例如限制酒類廣告、禁菸,以及對含糖飲料課稅。

領導人承諾將實施一系列政策,預防和控制WHO強調的非傳染性疾病,包括公共教育、提升公眾的健康生活意識、接種HPV疫苗以預防子宮頸癌,以及治療高血壓和糖尿病。WHO估計,如果能徹底施行這些政策,從現在起到2030年,將為低收入和中低收入國家帶來3500億美元的經濟增長。

其他承諾重點包括對抗兒童肥胖症、推廣規律運動、減少空氣污染、改善心理健康和福祉。

WHO在大會上發表了第三版國家概況報告,評估國家實現預防和控制非傳染性疾病目標的進度。

根據報告,2016年四種主要非傳染性疾病之一的過早死亡風險降至18%,比2010年低5%,但照這個速度,不太可能達到永續發展目標所要求的2030年前減少三分之一。

全世界每10個死亡人口中,有七個死於非傳染性疾病,尤其是心血管和呼吸系統疾病、癌症和糖尿病,30至69歲之間過早死亡總數高達4100萬人,大部分來自開發中國家,其中更有1500萬人死於壯年。



左:聯合國副秘書長阿米娜‧穆罕默德(Amina J. Mohammed)。右:第73屆聯合國大會主席埃斯皮諾薩(Maria Fernanda Espinosa Garces)。圖片來源:Ariana Lindquist /UN

World Leaders Pledge to Fight Unhealthy Foods NEW YORK, New York, October 4, 2018 (ENS)

Heads of state and government have committed to intensify their efforts to tackle noncommunicable diseases including cancers, heart and lung diseases, stroke, and diabetes, and to promote mental health and well-being by reducing salt, sugar and transfat in foods.

The political declaration taken during the opening of the United Nations General Assembly in late September reaffirms the global leadership of the World Health Organization, WHO, in the fight to beat noncommunicable diseases and promote mental health.

WHO says the rise of noncommunicable diseases is driven by four major risk factors: tobacco use, physical inactivity, the harmful use of alcohol and unhealthy diets.

On September 27, the United Nations General Assembly staged the third High-level Meeting on the prevention and control of noncommunicable diseases, which reviewed the global and national progress achieved in putting measures in place that protect people from dying too young from heart and lung diseases, cancers and diabetes.

Food manufacturers are asked to use nutrition labeling on packaged foods to inform consumers, and to restrict the marketing of unhealthy foods and beverages to children.

World leaders agreed to take responsibility themselves for their own countries’ efforts to prevent and treat noncommunicable diseases.

They agreed that these efforts should include robust laws and fiscal measures to protect people from tobacco, unhealthy foods, and other harmful products, for example by restricting alcohol advertising, banning smoking, and taxing sugary drinks.

They committed to implement a series of policies to prevent and control these diseases recommended by WHO – public education and awareness campaigns to promote healthier lifestyles, vaccinating against HPV virus to protect against cervical cancer and treating hypertension and diabetes.

WHO estimates that implementing all these policies could generate US$350 billion in economic growth in low and lower-middle-income countries between now and 2030.

Other commitments focus on halting the rise of childhood obesity, promoting regular physical activity, reducing air pollution and improving mental health and well being.

WHO has launched its third Country Profiles report to assess national progress in meeting targets to prevent and control noncommunicable diseases.

The report found that the risk of premature death from one of the four main noncommunicable diseases had declined to 18 percent in 2016, a relative reduction of five percent from 2010. But the rate of progress is unlikely to meet the Sustainable Development Goal target of a one-third reduction in premature deaths from noncommunicable diseases by 2030.

Noncommunicable diseases, primarily cardiovascular and respiratory diseases, cancers and diabetes, currently account for the deaths of seven in every 10 people worldwide, 41 million, including 15 million in the prime of their lives, ages 30-69, mostly from developing countries.

※ 全文及圖片詳見:

作者

如果有一件事是重要的,如果能為孩子實現一個願望,那就是人類與大自然和諧共存。

於特有生物研究保育中心服務,小鳥和棲地是主要的研究對象。是龜毛的讀者,認為龜毛是探索世界的美德。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

毒藻爆發蔓延新冰川 海產積毒素禍及人類

摘錄自2018年10月14日蘋果日報北極報導

北極近年受紅潮困擾,蔚藍冰海也「染紅」。香港《蘋果日報》記者跟隨香港科學家何建宗團隊前往北極,搜索形成紅潮的藻類,發現有毒的「擬菱形藻」蔓延至其他冰川,過去有鯨魚經食物鏈吸收過多毒素死亡。何建宗指,全球暖化助長毒藻在極地蔓延,憂慮融冰後懸崖累積雀糞跌入海裡,加劇海水富養化,進一步刺激藻類繁殖。

團隊經過3日出海,首次在Esmarkbreen冰川的海水樣本發現擬菱形藻。何建宗指,這種藻會產生有毒的「軟骨藻酸」,在貝類等海產體內累積,人進食毒素超標的海產會癲癇、喪失記憶,甚至死亡。此藻的爆發曾令溫帶和亞熱帶區的海產造成重大經濟損失,食用有毒海產可產生急性中毒,很多國家把它列入重要監測項目。若驗出濃度超標,便要封鎖魚和貝殼市場禁售。當鯨魚經食物鏈不斷累積毒素,數年前因而發生毒死鯨魚事件。

何建宗指,擬菱形藻屬廣溫性藻類,適應溫度範圍較廣,以往在長年城對面海域發現擬菱形藻,此次新發現當極地海域水溫在4至5°C,這種毒藻便能生存。他憂慮毒藻在極地急速擴散,成為漁業隱患。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

心情很差? MIT說可能跟氣候變遷有關

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

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!

瑞士冰川2018年已減少2.5%體積

摘錄自2018年10月16日中央社日內瓦報導

根據16日公布的一項名為2018「極端氣候年」報告,儘管2017-2018年冬天特殊地降下大雪,但瑞士冰川2018年已減少2.5%體積。

根據瑞士科學院(Swiss Academies of Science)公布的年度冰川報告,過去十年冰川體積減少1/5,2018年破紀錄的高溫貢獻良多。阿爾卑斯山國家瑞士連續三年降雪稀少之後,2017-2018年冬天降下大雪;儘管如此,冰川體積仍然縮減。

報告作者表示:「直到3月底,海拔2000公尺以上地區的降雪量仍是往常的一倍以上。」但年初的特殊降雪,遭到3月以來氣溫飆升和幾乎沒有降雨所抵銷。

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

【其他文章推薦】

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

※搬家前必知的8 件事情!價格、費用、便宜、優質桃園搬家公司哪裡找?

竹南搬家公司頭份搬家公司行情價格一覽表!