整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          上海防疫六十余天:一座超大城市是如何對抗奧密克戎的?

          上海防疫六十余天:一座超大城市是如何對抗奧密克戎的?

          三月份以來,上海疫情成為全國焦點(diǎn)。

          根據(jù)上海衛(wèi)健委通報(bào),上海市自2月底始,到4月29日止,本土新冠肺炎確診病例已經(jīng)超過5萬例。而2021年,全國全年新冠肺炎確診病例數(shù)(包含境外輸入)為15243例——在近兩個(gè)月的時(shí)間內(nèi),上海的本土確診病例數(shù)已經(jīng)達(dá)到去年全年的三倍左右。

          但是,比這更令人擔(dān)憂的,是高速躍進(jìn)的無癥狀感染者數(shù)量。3月24日后,上海市新增無癥狀感染者規(guī)模已達(dá)到數(shù)千人。在4月4日至4月26日,上海每日新增的無癥狀感染者數(shù)量,曾連續(xù)二十余日達(dá)到萬數(shù)。

          上海,我國國際經(jīng)濟(jì)、金融、貿(mào)易、航運(yùn)、科技創(chuàng)新中心,也是世界重要城市之一,眼下正面臨十分復(fù)雜的防疫形勢:傳染性極強(qiáng)的變異株,規(guī)模龐大的社會流動(dòng)人口,都是上海防疫工作的壓力源。

          現(xiàn)在,從3月1日報(bào)告新增本土病例以來,上海本輪疫情已經(jīng)超過60天。在60多天里,上海為迎擊奧密克戎做了哪些努力?目前形勢如何?讓我們一起通過數(shù)據(jù)了解一下。

          一、上海:全國疫情風(fēng)暴眼

          2022年3月1日,上海通報(bào)新增1例本土新冠肺炎確診病例和1例無癥狀感染者,前者為普陀區(qū)一名退休市民,后者則是徐匯區(qū)一個(gè)入境人員隔離點(diǎn)的工作人員。在發(fā)生疫情后,上海市對相關(guān)密切接觸者進(jìn)行了集中隔離觀察。

          2022年3月3日,上海市松江區(qū)一永輝超市的2名員工被確診為新冠肺炎病例,3名員工被診斷為無癥狀感染者。根據(jù)上海市衛(wèi)健委通報(bào),上述5人涉及195名密切接觸者,次密接者342人,且均對其進(jìn)行集中隔離觀察。上海三區(qū)三地在三天內(nèi)相繼出現(xiàn)本土病例,上海新一輪疫情由此開始。

          在疫情初期,上海市幾乎每天都有不同區(qū)域報(bào)告零星的確診病例,直至3月29日,上海市新增本土確診病例數(shù)字從28日的96擴(kuò)大到326。進(jìn)入四月后,上海市本土確診病例數(shù)量、無癥狀感染者數(shù)量均迅速增加,上海疫情進(jìn)入高速發(fā)展的態(tài)勢。

          此次疫情,本土無癥狀感染者總數(shù)和增速都遠(yuǎn)遠(yuǎn)高于本土確診病例。通過整理上海市衛(wèi)健委公開數(shù)據(jù),我們發(fā)現(xiàn),3月31日到4月10日這段時(shí)間里,上海市的無癥狀感染者每日新增數(shù)量從開始的4000余例擴(kuò)大到了25000余例,是上海市無癥狀感染者新增數(shù)量最多的一段時(shí)間。

          上海市共有16個(gè)行政區(qū),其中,浦東新區(qū)面積最大、人口最多。從數(shù)量上看,也成為本輪疫情最嚴(yán)重的區(qū)域。浦東新區(qū)在3月10日報(bào)告本區(qū)3月首例本土確診病例,新增本土確診病例數(shù)在3月30日迎來第一個(gè)小高峰。目前,浦東新區(qū)既是本土確診病例數(shù)最多的地區(qū),也是無癥狀感染者累計(jì)數(shù)量最多的地區(qū)。

          將上海市新冠肺炎疫情防控工作新聞發(fā)布會上的信息整理發(fā)現(xiàn),此輪疫情初期集中暴發(fā)在三個(gè)重點(diǎn)區(qū)域:普陀區(qū)石泉街道寧強(qiáng)路33號石泉社區(qū)文化活動(dòng)中心、松江區(qū)九里亭街道永輝超市滬亭北路店、上海徐匯區(qū)徐家匯街道漕溪北路1200號(入境人員隔離點(diǎn))。疫情之初,上海市傳播鏈比較清晰,但隨著疫情發(fā)展,上海逐漸從小范圍傳播到廣泛社區(qū)傳播,造成更加復(fù)雜和嚴(yán)峻的疫情防控形勢。

          在通報(bào)發(fā)現(xiàn)本土確診病例后,上述三個(gè)地點(diǎn)相繼被劃分為中風(fēng)險(xiǎn)地區(qū)。隨著疫情發(fā)展,前后有25個(gè)地點(diǎn)曾被劃分為中風(fēng)險(xiǎn)地區(qū)。目前,上海市有13個(gè)中風(fēng)險(xiǎn)地區(qū),為全國中風(fēng)險(xiǎn)地區(qū)最多的地方。

          另外,上海市在4月11日發(fā)布了“三區(qū)”名單,對上海全市按照封控區(qū)、管控區(qū)和防范區(qū)進(jìn)行差異化管理。在4月20日,上海市劃定了封控區(qū)16650個(gè),涉及1187.8萬人;管控區(qū)13304個(gè),涉及448萬人。截至4月29日,上海市封控區(qū)數(shù)量達(dá)到6393個(gè),管控區(qū)數(shù)量達(dá)到3759個(gè);防范區(qū)域?yàn)?239個(gè)。

          二、上海的抗疫難點(diǎn)到底在哪里?

          上海本輪疫情,面臨著幾大難點(diǎn)。

          首先是奧密克戎亞型變異株BA.2的挑戰(zhàn)。

          根據(jù)4月26日上海市疫情防控工作新聞發(fā)布會上的介紹,導(dǎo)致上海本輪本土疫情的新冠病毒,絕大部分為奧密克戎BA.2型和BA.2.2型。這兩種毒株均為奧密克戎毒株的亞型變異株。

          奧密克戎毒株的遺傳譜系名稱為B.1.1.529,根據(jù)世界衛(wèi)生組織的報(bào)告,奧密克戎變異株是目前全球流行的主要變異株【1】。在11月26日,世衛(wèi)組織將其列為“需要關(guān)注”的變異毒株(Variant of Concern)。

          作為奧密克戎亞型變異株的BA.2,有研究顯示,Omicron BA.2是最具傳染性的變異,其傳染性是Delta 變異的4.2倍;且奧密克戎BA.2在早期難以識別,因此又被非正式地稱為“隱形變種”。

          其次是規(guī)模龐大的社會流動(dòng)人口。

          上海是一個(gè)超大型的國際化都市,其城區(qū)人口規(guī)模居于我國首位。2019年,根據(jù)聯(lián)合國發(fā)布的《世界城鎮(zhèn)化前景展望》,上海的總?cè)丝谝?guī)模居于全球第三。

          除此之外,上海市還擁有發(fā)達(dá)的市內(nèi)交通網(wǎng)絡(luò),也是國內(nèi)乃至國際交通運(yùn)輸網(wǎng)中的重要節(jié)點(diǎn)。根據(jù)《上海市綜合交通發(fā)展“十四五”規(guī)劃》,2019年航空客貨吞吐量達(dá)到1.22億人次、406萬噸,分別位列全球城市第4位、第3位,網(wǎng)絡(luò)通達(dá)性在亞洲處于領(lǐng)先地位。

          也正是其作為我國重要交通樞紐的地位,上海市面臨著疫情外溢的風(fēng)險(xiǎn)。根據(jù)人口遷徙大數(shù)據(jù)顯示,上海市遷出人口大多去往江蘇、浙江兩省,全國多個(gè)省市也都報(bào)告了與上海疫情相關(guān)的本土病例。3月10日,在江蘇蘇州,就有多地要求有上海市旅居史(行程卡帶*)人員實(shí)行“3+11”健康管理措施。

          自新冠肺炎疫情暴發(fā)以來,上海市一直面臨著境外輸入的防控壓力。在今年的1月至2月,上海市新增的境外輸入病例就已經(jīng)相當(dāng)于2021年全年的80%;截至目前,上海也已經(jīng)成為全國境外輸入確診病例最多的城市。

          三、上海防控六十余天,哪些問題最受關(guān)注?

          三月以來的六十多天里,上海市每日召開新冠肺炎疫情防控工作新聞發(fā)布會。在六十場發(fā)布會上媒體的提問中,我們看到了這段時(shí)間,上海市疫情防控措施中最為突出的幾個(gè)關(guān)鍵詞:物資、醫(yī)療。

          首先,是封控期內(nèi)物資供應(yīng)的問題。

          上海市是一個(gè)高度依賴外埠市場供應(yīng)蔬菜的城市。2013年,上海市蔬菜的自給率在55%左右;到2019年,上海市地產(chǎn)蔬菜對蔬菜總消費(fèi)量的占比下降到44%。對此輪疫情暴發(fā)的三、四月份,根據(jù)2013年的調(diào)查,正是上海市全年外埠蔬菜上市的第一個(gè)小高峰。

          根據(jù)2013年和2019年的調(diào)查,上海市蔬菜主要來源于江蘇和山東等地。因疫情防控,截至4月10日,江蘇關(guān)閉了129個(gè)高速收費(fèi)站,數(shù)量在全國僅次于遼寧。上海也對外地貨車出入進(jìn)行嚴(yán)格的車證管理,非保供企業(yè)幾乎無法進(jìn)出上海。

          4月14日,國務(wù)院聯(lián)防聯(lián)控機(jī)制綜合組交通管控與運(yùn)輸保障專班發(fā)布了全國統(tǒng)一樣式的《重點(diǎn)物資運(yùn)輸車輛通行證》(以下簡稱《通行證》),上海市商務(wù)委員會也在23日下發(fā)通知,為上海市商貿(mào)物資和生活物資企業(yè)辦理《通行證》。另外,上海市也在加大鐵路、水運(yùn)通道的運(yùn)輸量,以確保物資供應(yīng)。

          但是,根據(jù)4月6日在新聞發(fā)布會上的信息,上海市由于終端運(yùn)力不足,導(dǎo)致生活物資配送并不及時(shí)。

          因?yàn)榉饪兀虾T趰忩T手?jǐn)?shù)量急劇減少。根據(jù)上海市4月19日舉行的疫情防控工作新聞發(fā)布會上的介紹,上海市當(dāng)時(shí)在崗騎手為2萬人左右;而此前,在2019年的媒體報(bào)道中,上海僅浦東地區(qū)登記騎手總?cè)藬?shù)就超過了1.8萬人。

          針對這個(gè)問題,上海市已經(jīng)采取大數(shù)據(jù)中心提供的技術(shù)平臺,制定電商平臺、快遞公司“企業(yè)白名單”和配送寄遞“人員白名單”,并為其制發(fā)“電子通行證”,在“電子通行證”內(nèi)展示48小時(shí)核酸檢測陰性證明和“健康碼”綠碼等信息,作為配送寄遞人員上崗的必要條件和通行憑證,以增強(qiáng)市內(nèi)運(yùn)力。

          另外,是上海的防疫醫(yī)療資源承載問題。

          據(jù)上海市新冠肺炎疫情防控工作發(fā)布會上的信息,依據(jù)國家最新公布的《新型冠狀病毒肺炎診療方案(試行第九版)》,新冠肺炎輕型病例實(shí)行集中隔離管理,隔離場所不限于醫(yī)療機(jī)構(gòu),如病情加重,將轉(zhuǎn)至定點(diǎn)醫(yī)院治療。上海根據(jù)防疫要求建造的若干方艙醫(yī)院,則是符合標(biāo)準(zhǔn)要求的集中隔離救治場所,有醫(yī)務(wù)人員進(jìn)駐,主要用于對輕癥、無癥狀感染者的集中隔離觀察或適當(dāng)?shù)膶ΠY治療。

          國務(wù)院聯(lián)防聯(lián)控機(jī)制赴上海工作組成員、國家衛(wèi)生健康委醫(yī)管中心信息數(shù)據(jù)管理與醫(yī)療機(jī)構(gòu)運(yùn)行管理處處長向準(zhǔn)4月16日接受新華社采訪時(shí)透露,截至4月13日24時(shí),上海已有方艙醫(yī)院床位約20.4萬張,在建的方艙醫(yī)院計(jì)劃近期開放床位3.5萬張,合計(jì)約24萬張。而截至4月27日,上海市本土陽性感染者已經(jīng)達(dá)到53萬余人。

          目前,上海正通過加快方艙醫(yī)院的建設(shè),提升現(xiàn)有方艙醫(yī)院的流轉(zhuǎn)效率等方式,盡力實(shí)現(xiàn)“四應(yīng)四盡”、日清日結(jié)。全國各省也在不斷向上海輸送援滬醫(yī)療隊(duì),盡可能增加上海市的醫(yī)療承載能力。

          目前,上海市已經(jīng)連續(xù)三日(4月27日、28日、29日)新增無癥狀感染者數(shù)量都已經(jīng)下降到千位;本輪疫情中,上海市累計(jì)治愈出院人數(shù)也已經(jīng)接近3萬人。疫情防控形勢有了好轉(zhuǎn)的態(tài)勢。

          凱特·阿歇爾曾在《紐約:一座超級城市是如何運(yùn)轉(zhuǎn)的》中說:“任何一個(gè)大都市的居民,都很少停下來思考城市生活的復(fù)雜性,或者是那些日日夜夜使城市維持正常運(yùn)轉(zhuǎn)的系統(tǒng)有多復(fù)雜。”對于紐約是如此,對于上海來說亦是如此。復(fù)雜的城市系統(tǒng),決定了上海復(fù)雜的防疫情勢。但是,每一個(gè)人,每一片社區(qū),每一個(gè)還在運(yùn)轉(zhuǎn)的機(jī)構(gòu),都還在奮力爭取勝利的曙光。我們共同期待那一天。

          【1】原文:“The Omicron variant remains the dominant variant circulating globally,accounting for nearly all sequences recently reported to GISAID”,COVID-19 Weekly Epidemiological Update,Edition 86,published 5,April 2022

          【2】吳俁,劉民. 不同新型冠狀病毒變異株感染的COVID-19潛伏期研究[J].2022年

          【3】周燕,奧巖松.上海市場外埠蔬菜消費(fèi)現(xiàn)狀及其特點(diǎn)研究[J].2013

          【5】孫占剛;楊娟;彭飚;馬驁;柴立平,上海蔬菜市場狀況與市場開拓建議[J],2020年

          【6】李干瓊;王盛威;許世衛(wèi);趙京音;馬佳.大城市蔬菜供需分析與預(yù)測研究——以上海市為例[J].2021

          【7】解有成;康殷楠;高春;劉珊山;鄭立婷;于曉輝;張久聰.新冠病毒“奧密克戎亞型變異...株BA.2”的最新研究進(jìn)展[J].2022年

          【8】陳姍姍,馬晨晨,胥會云.上海外防輸入壓力到底有多大?數(shù)據(jù)告訴你真相.第一財(cái)經(jīng).https://www.yicai.com/news/101350912.html.

          【9】張倩,白廷俊,周力.上海本輪疫情累計(jì)報(bào)告535600例新冠本土陽性感染者.央視網(wǎng).https://content-static.cctvnews.cctv.com/snow-book/index.html?item_id=1968372601727033723&t=1651025113096&toc_style_id=feeds_default&share_to=wechat&track_id=f6495ffc-4562-4999-90df-0f286fbd43af.

          【10】包志明.封面報(bào)道之二|上海:精準(zhǔn)防控的失控.財(cái)新網(wǎng).https://weekly.caixin.com/2022-04-02/101864942.html

          數(shù)據(jù)新聞編輯:趙林

          新媒體設(shè)計(jì):許驍勇

          動(dòng)效設(shè)計(jì):李亞珍

          校對:李立軍

          之前閑時(shí),花了幾個(gè)下班時(shí)間使用VUE+Spring Boot前后端分離做了一個(gè)博客,博客文章編輯采用vue-quill-editor插件,做了一些簡單的配置后,就直接可用了,可惜在編輯文章時(shí),默認(rèn)的圖片上傳為Base64存放在文章內(nèi)容中,這使得原本存儲在數(shù)據(jù)庫中的5這個(gè)大字段會因一篇文章的圖片上傳多而變得沉重。因?yàn)槲沂沟玫氖窃品?wù)當(dāng)服務(wù)器,有用過云服務(wù)的都知道,網(wǎng)絡(luò)帶寬很貴。在帶寬只有3M的情況下,讀取一篇幾兆的文章會有幾秒的延遲。一開始我以為是數(shù)據(jù)庫讀取問題,所以我把文章內(nèi)容這個(gè)字段做了中間緩存,把常變字段(如閱讀數(shù))依然從數(shù)據(jù)庫中讀取,在邏輯上進(jìn)行兩者拼接返回給前端,但依然速度很慢。如下圖,文章內(nèi)容中的圖片是BASE64存儲,存儲大小782KB,如果一篇文章的上傳圖片越多,也就會導(dǎo)致這個(gè)文章內(nèi)容字段越大。

          在不考慮提高帶寬成本的情況下,準(zhǔn)備把富文本圖片默認(rèn)存儲為Base64的方案改成圖片存儲服務(wù)器,用URL引用,這樣可以減少文章內(nèi)容的讀寫IO。以下我將從引用富本文到圖片改造再到后端接收上傳的圖片來介紹。

          一、下載富文本依賴

          npm install vue-quill-editor --save 
          

          下載完依賴后,在package.json中,將可以找到對應(yīng)的版本。

          二、在main.js中引用富文本,可以按Ctrl鍵+鼠標(biāo)點(diǎn)擊vue-quill-editor,看下是否可以看到源碼,這樣可以再次確認(rèn)是否下載成功(我用的編譯器是JetBrains WebStorm 2018.3.5 x64)

          import VueQuillEditor from 'vue-quill-editor'
          

          三、富文本的使用

          1、HTML部分代碼

          <template>
          //中間省去其他內(nèi)容,只顯示富文本HTML
          <div class="edit_container">
           <quill-editor
           v-model="blogsContent"
           ref="myQuillEditor"
           :options="editorOption"
           @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
           @change="onEditorChange($event)">
           </quill-editor>
          </div>
          </template>
          

          2、JS部分代碼

          <script>
           import {quillEditor} from "vue-quill-editor"; //調(diào)用編輯器
           import quillConfig from '../../api/quill-config.js'//重寫富文本,使得圖片走自定義上傳
           import 'quill/dist/quill.core.css';
           import 'quill/dist/quill.snow.css';
           import 'quill/dist/quill.bubble.css';
          export default {
           name: 'editor',
           components: {
           quillEditor
           },
           data() {
           return {
           editorOption: quillConfig,//重寫
           }
           }
          }
          

          3、重寫自定義圖片上傳quill-config.js代碼

          以下代碼可以直接復(fù)制,然后改一下接口地址和你所要的參數(shù)即可

          /*富文本編輯圖片上傳配置*/
          const uploadConfig={
           // 必填參數(shù) 圖片上傳地址
           action: '/api/file/up/img', // 必填參數(shù) 圖片上傳接口地址
           methods: 'POST', // 必填參數(shù) 圖片上傳方式
           token: '', // 可選參數(shù) 如果需要token驗(yàn)證,假設(shè)你的token有存放在sessionStorage
           name: 'img', // 必填參數(shù) 文件的參數(shù)名
           size: 500, // 可選參數(shù) 圖片大小,單位為Kb, 1M=1024Kb
           accept: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon' // 可選 可上傳的圖片格式
          };
          
          // toolbar工具欄的工具選項(xiàng)(默認(rèn)展示全部)
          const toolOptions=[
           ['bold', 'italic', 'underline', 'strike'],
           ['blockquote', 'code-block'],
           [{'header': 1}, {'header': 2}],
           [{'list': 'ordered'}, {'list': 'bullet'}],
           [{'script': 'sub'}, {'script': 'super'}],
           [{'indent': '-1'}, {'indent': '+1'}],
           [{'direction': 'rtl'}],
           [{'size': ['small', false, 'large', 'huge']}],
           [{'header': [1, 2, 3, 4, 5, 6, false]}],
           [{'color': []}, {'background': []}],
           [{'font': []}],
           [{'align': []}],
           ['clean'],
           ['link', 'image', 'video']
          ];
          const handlers={
           image: function image() {
           var self=this;
          
           var fileInput=this.container.querySelector('input.ql-image[type=file]');
           if (fileInput===null) {
           fileInput=document.createElement('input');
           fileInput.setAttribute('type', 'file');
           // 設(shè)置圖片參數(shù)名
           if (uploadConfig.name) {
           fileInput.setAttribute('name', uploadConfig.name);
           }
           // 可設(shè)置上傳圖片的格式
           fileInput.setAttribute('accept', uploadConfig.accept);
           fileInput.classList.add('ql-image');
           // 監(jiān)聽選擇文件
           fileInput.addEventListener('change', function () {
           // 創(chuàng)建formData,append這個(gè)方法是添加參數(shù)的方法,如果你的接口需要添加其他參數(shù),比如用戶ID,也可以在后面加進(jìn)去。
           var formData=new FormData();
           formData.append(uploadConfig.name, fileInput.files[0]);
           formData.append('object','product');
           // 如果需要token且存在token
           if (uploadConfig.token) {
           formData.append('token', uploadConfig.token)
           }
           // 圖片上傳
           var xhr=new XMLHttpRequest();
           xhr.open(uploadConfig.methods, uploadConfig.action, true);
           // 上傳數(shù)據(jù)成功,會觸發(fā)
           xhr.onload=function (e) {
           if (xhr.status===200) {
           // var res=JSON.parse(xhr.responseText);//如果你圖片上傳接口返回的是一個(gè)Json對象,就需要這個(gè)轉(zhuǎn),然后在下面獲取圖片URL
           let length=self.quill.getSelection(true).index;
           //這里很重要,你圖片上傳成功后,img的src需要在這里添加,res.path就是你服務(wù)器返回的圖片鏈接。
           //如果只是圖片地址,在前端是顯示不了的,需要添加前綴,你可以使用接口全路徑,也可以使用我下面的VUE路由解決跨域問題
           self.quill.insertEmbed(length, 'image','/api/file/get/img?url='+xhr.responseText);
           self.quill.setSelection(length + 1)
           }
           fileInput.value=''
           };
           // 開始上傳數(shù)據(jù)
           xhr.upload.onloadstart=function (e) {
           fileInput.value=''
           };
           // 當(dāng)發(fā)生網(wǎng)絡(luò)異常的時(shí)候會觸發(fā),如果上傳數(shù)據(jù)的過程還未結(jié)束
           xhr.upload.onerror=function (e) {
           };
           // 上傳數(shù)據(jù)完成(成功或者失敗)時(shí)會觸發(fā)
           xhr.upload.onloadend=function (e) {
           // console.log('上傳結(jié)束')
           };
           xhr.send(formData)
           });
           this.container.appendChild(fileInput);
           }
           fileInput.click();
           }
          };
          
          export default {
           placeholder: '',
           theme: 'snow', // 主題
           modules: {
           toolbar: {
           container: toolOptions, // 工具欄選項(xiàng)
           handlers: handlers // 事件重寫
           }
           }
          };
          

          4、JAVA圖片上傳接口

          @PostMapping("/up/img")
          @ApiOperation(value="上傳")
          public String upImg(HttpServletRequest request,
           @ApiParam(name="userId", value="id") String userId,
           MultipartFile img){
           String fileName=ServiceCommon.ymdhmsdfStr.format(new Date())+"_"+img.getOriginalFilename();//防止圖片重名覆蓋,生成一個(gè)當(dāng)前時(shí)間+圖片名
           String path=filePath;//配置文件中的圖片存儲前綴,如d://img/
           String nameTypePath="/" +userId+ "/blog_img" ;//中間路徑
           return upFileImgService.upFileService("/" + fileName, path + nameTypePath, nameTypePath, img);//接口看后面Service層
          }
          

          4.1、Service層

          public Result upFileService(String fileName, String filePath, String nameTypePath, MultipartFile file) {
           try {
           File file1=new File(filePath);//按路徑生成文件對象
           if(!file1.exists()){//如果文件不存在,將創(chuàng)建一個(gè)文件
           file1.mkdirs();
           }
           byte [] bytes=file.getBytes();//獲取文件二進(jìn)制字節(jié)數(shù)組
           String url=filePath+fileName;//存儲路徑+文件名,產(chǎn)生一個(gè)文件存儲地址
           Path path=Paths.get(url);
           Files.write(path,bytes);//文件寫入
           return nameTypePath+fileName;//返回URL(我這個(gè)URL返回的前綴地址是截取掉的,不會顯示IP等信息,只返回給前端后半地址,前端在調(diào)用圖片獲取時(shí),將在接口中帶入前綴,防止全路徑暴露給前端)
           } catch (IOException e) {
           e.printStackTrace();
           return "";
           }
          }
          

          5、圖片獲取接口

          @GetMapping("/get/img")
          @ApiOperation(value="獲取圖片")
          public void getImg(HttpServletResponse response,
           @ApiParam(name="url", value="文件路徑") @RequestParam(required=true) String url,
           @ApiParam(name="resType", value="文件以什么類型輸出(pdf,jpg)") @RequestParam(required=false) String resType) {
           String path=filePath + url;
           upFileImgService.download(path, response, "get", resType);
          }
          

          5.1、圖片獲取接口Service層

          public void download(String filePath, HttpServletResponse response,String type,String resType) {
           File file=new File(filePath); 
           response.setContentLength((int)file.length());
           try (
           FileInputStream fis=new FileInputStream(file);
           OutputStream os=response.getOutputStream())
           {
           byte[] buf=new byte[1024 * 256];
           int i;
           while ((i=fis.read(buf)) !=-1) {
           os.write(buf, 0, i);
           }
           os.flush();
           } catch (IOException e) {
           System.out.println(e.getMessage());
           }
          }
          

          到此VUE富文本編輯器+Spring Boot接口就完成了。代碼基本復(fù)制改改就可以使用。最后看下效果如何,如下圖上,從原來的Base64內(nèi)容變成URL地址,整個(gè)文章字段就縮小幾十倍,這在IO讀取時(shí)也加快了幾十倍。

          點(diǎn)擊鏈接查看圖片:https://content-static.cctvnews.cctv.com/snow-book/index.html?item_id=2051731297093853307&toc_style_id=feeds_default&share_to=wechat&track_id=aa32c371-8b5b-4005-8805-82347702c060

            近日,在吉林琿春城郊一處綠化帶里,攝影師拍到了可愛的“藍(lán)精靈”。“藍(lán)精靈”特別喜歡照相機(jī)的鏡頭,對照相機(jī)上看、下看、左看、右看,并且把照相機(jī)當(dāng)作舞臺,表演各種“絕活”。

            幽默的攝影師用另一個(gè)照相機(jī)抓拍了一組《“藍(lán)大膽”要入鏡》的畫面。“藍(lán)大膽”就是普通?(shi),為?科?屬的鳥類,俗名藍(lán)大膽、穿樹皮、松枝兒、貼樹皮。多生活于山中的針葉林、闊葉林、針闊混交林。

            “藍(lán)大膽”可以在樹干的裂縫中覓食昆蟲,因而能消滅許多其它森林鳥類吃不到的害蟲;它也能到地面上啄食各種鱗翅目的幼蟲及其蛹;也取食一部分益蟲,例如蜜蜂、食蚜虻、瓢蟲等。秋、冬季節(jié),“藍(lán)大膽”以植物種子、葉片、果實(shí)為食,包括橡實(shí)、松、杉、椴、樺等,冬季有時(shí)也到居民點(diǎn)取食禽畜的飼料。

            監(jiān)制 | 裴奔 張英林 周軍

            主編 | 張旭成

            統(tǒng)籌 | 梁洋

            合作 | 琿春市融媒體中心

            圖片 | 高飛

          來源:中央廣播電視總臺吉林總站


          主站蜘蛛池模板: 国产精品美女一区二区三区| V一区无码内射国产| 国产一区韩国女主播| 日本丰满少妇一区二区三区| 精品少妇人妻AV一区二区三区| 国产对白精品刺激一区二区| 精品国产免费观看一区| 久久亚洲中文字幕精品一区四 | 日韩精品乱码AV一区二区| 国产精品无码一区二区三区毛片| 色综合视频一区中文字幕| 中文字幕一区二区三区四区 | 激情内射亚洲一区二区三区爱妻| 中文字幕无码不卡一区二区三区| 成人在线视频一区| 国产乱码精品一区二区三区麻豆| 精品国产亚洲一区二区三区| 日韩一区二区视频| 色欲AV蜜臀一区二区三区 | 久久精品国产一区二区| 国产人妖视频一区二区 | 亚洲天堂一区二区| 国产激情无码一区二区| 一区二区三区免费高清视频| 伦精品一区二区三区视频| 中文字幕人妻无码一区二区三区| 国偷自产视频一区二区久| 天美传媒一区二区三区| 久久久久人妻精品一区三寸| 亚洲熟妇AV一区二区三区浪潮| 日韩在线一区二区| 免费看无码自慰一区二区| 国产福利日本一区二区三区| 国产成人一区二区三区| 久久人妻无码一区二区| 无码人妻啪啪一区二区| 亚洲av永久无码一区二区三区| 黄桃AV无码免费一区二区三区| 99无码人妻一区二区三区免费 | 91成人爽a毛片一区二区| 在线欧美精品一区二区三区|