@TOC
背景
在我們APP開發過程中,經常會有這樣一個需求場景:從手機中選擇文件然后進行上傳,這些文件主要分為兩類,媒體文件和非媒體文件。而媒體文件選擇在APP平臺我們可以使用uni.chooseImage和uni.chooseVideo這兩個API來實現。但是如果我們想要選擇非媒體文件,官方暫時沒有提供API給我們,我們只能自己另辟蹊徑。記得我之前寫過篇文章uniapp多格式文件選擇(APP,H5),這里使用的renderjs方式,用一個file類型的input來模擬H5的方式來進行非媒體文件選擇。這個也是一種實現方式,但是由于存在邏輯層和視圖層的通訊,在文件過大的時候性能不好,所以今天我們介紹另外一種實現方式。
實現
今天實現的方式主要是利用html5plus相關的API來實現(但是目前plus.io.chooseFile這個在IO模塊下無法找到),實現非常的簡單直接上代碼:
plus.io.chooseFile({ title: '選擇文件',filetypes: ['docx', 'zip'],multiple: false, // 是否允許多選}, (e) => {const tempFilePaths = e.filesconsole.log('11111111',tempFilePaths)});
然后我們在頁面上放一個按鈕,加個click事件調用以上代碼,這部分比較簡單,我就不貼代碼了,然后我們看下效果:
可以看到在安卓平臺直接拉起了安卓文件管理器來進行選擇,但是filetypes這個文件格式的篩選參數這里貌似沒起作用,我們選擇一個word看下打印:
這里看到已經成功打印出了選擇文件的路徑。
iOS平臺也會拉起文件APP展示文件讓用戶選擇,這里就不貼圖了,同樣也能打印出選擇文件的路徑,獲取到了文件路徑就可以愉快的進行上傳了。
尾巴
今天的內容相對簡單,只使用了一個API,但是這個API在官方文檔中無法找到又確實能用,所以可能有些人不知道,希望能幫助到有需要的人。如果你喜歡我的文章歡迎給我點贊,謝謝!