【ant-design】-upload組件個性化實現(xiàn)上傳文件

一石抡、項目需求


要求:

可通過點擊灰色區(qū)域打開系統(tǒng)的文件選擇器赐纱,或?qū)⑽募x擇窗口中的文件拖動到灰色區(qū)域?qū)崿F(xiàn)選擇文件;

文件在選擇中限制可選擇的文件類型并且不可選擇文件夾病涨;

選擇文件之后富玷,列表顯示選擇的文件【文件名+刪除按鈕】;

選擇文件后既穆,不立刻實現(xiàn)文件上傳赎懦,在用戶點擊確定按鈕之后,將文件以列表的方式上傳到后端幻工。

二励两、實現(xiàn)分析

首先我們的項目是angular并且使用ant-design的組件庫,所以選用ant-design 的upload 組件囊颅。



三当悔、問題:


1. 在打開文件進行選擇的時候傅瞻,我們發(fā)現(xiàn),限制選擇文件類型并不是被系統(tǒng)完全限制的盲憎,它還是可選擇所有文件嗅骄。因此此處為了加強用戶體驗,我嘗試找了處理的方法:

【1】網(wǎng)頁中的打開文件行為實質(zhì)是瀏覽器觸發(fā)了文件選擇的事件饼疙;

【2】瀏覽器對象模型(BOM)的核心是window對象溺森;

【3】在谷歌瀏覽器的window對象,發(fā)現(xiàn)了 showOpenFilePicker() 方法窑眯;

【4】最后屏积,通過在mdn上的查找,發(fā)現(xiàn) showOpenFilePicker() 的作用如下:


我們可以通過將【excludeAcceptAllOption】值設(shè)為true伸但,來禁止對所有文件的選擇肾请。

2. 但是,這并沒有結(jié)束更胖;兼容性問題始終是程序處理的難題铛铁。

在實際項目中;如果項目對于瀏覽器的兼容性要求沒那么嚴格却妨,并且項目最終應(yīng)用到的瀏覽器屬于谷歌86版本及以上饵逐、Edge版本86及以上或者歐朋版本72及以上,那么我們可以嘗試使用這個方法來個性化定制打開文件選擇器的功能彪标。

————————————————

版權(quán)聲明:本文為CSDN博主「苛性鈉」的原創(chuàng)文章倍权,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明捞烟。

原文鏈接:https://blog.csdn.net/weixin_49392840/article/details/124882841

注意:1. 我遇到的項目是客戶端薄声,內(nèi)核是谷歌的83版本,因此當(dāng)時使用時直接報錯window下找不到這個方法题画。因此默辨,在不確定的情況下,我們可以查看一下瀏覽器的內(nèi)核及版本:


檢測原理: 客戶端瀏覽器每次發(fā)送 HTTP 請求時苍息,都會附帶有一個 user-agent(用戶代理)字符串缩幸,對于 Web 開發(fā)人員來說,可以使用用戶代理字符串檢測瀏覽器類型竞思。

注意:2.在 angular 組件中使用 Window.showOpenFilePicker() 時表谊,可能是因為語法檢測,不可以直接使用盖喷;需要用:(Window as any)將 winddow 進行一次類型轉(zhuǎn)換爆办。

————————————————

?———————————————— 版權(quán)聲明:本文為CSDN博主「苛性鈉」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議传蹈,轉(zhuǎn)載請附上原文出處鏈接及本聲明押逼。 原文鏈接:https://blog.csdn.net/weixin_49392840/article/details/124882841

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末步藕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挑格,更是在濱河造成了極大的恐慌咙冗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漂彤,死亡現(xiàn)場離奇詭異雾消,居然都是意外死亡,警方通過查閱死者的電腦和手機挫望,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門立润,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人媳板,你說我怎么就攤上這事桑腮。” “怎么了蛉幸?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵破讨,是天一觀的道長。 經(jīng)常有香客問我奕纫,道長提陶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任匹层,我火速辦了婚禮隙笆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘升筏。我一直安慰自己撑柔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布您访。 她就那樣靜靜地躺著乏冀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洋只。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天昼捍,我揣著相機與錄音识虚,去河邊找鬼。 笑死妒茬,一個胖子當(dāng)著我的面吹牛担锤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乍钻,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肛循,長吁一口氣:“原來是場噩夢啊……” “哼铭腕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起多糠,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤累舷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后夹孔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體被盈,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年搭伤,在試婚紗的時候發(fā)現(xiàn)自己被綠了只怎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡怜俐,死狀恐怖身堡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拍鲤,我是刑警寧澤贴谎,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站殿漠,受9級特大地震影響赴精,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绞幌,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一蕾哟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莲蜘,春花似錦谭确、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至问顷,卻和暖如春昂秃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杜窄。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工肠骆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人塞耕。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓蚀腿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扫外。 傳聞我的和親對象是個殘疾皇子莉钙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容