大家都知道Scratch3.0開發后,默認是可以下載文件到電腦,但是如果是作為商業系統來說,我們需要將作業自動的提交到后台,因此有了這篇文章。
首先,我們來分解下開發步驟:
1.在菜單欄新增一個上傳到作業的菜單
2.點擊上傳到作業后,自動上傳到上傳文件目錄並返回URL地址(目前利用的是阿里雲的OSS對象)
3.將地址保存到用戶作業的數據庫表中
首先我們來分析下scratch3.0這個的結構
首先,我們需要新增一個上傳到作業的菜單
1.打開SRC/components/menu-bar/menu-bar.jsx的414行
其中,新增了SB3UpdateToWeb對象,以及IDgui.menuBar.updatetoweb
由於scratch采用的是多語言版本,因此很多的文字其實都是存儲在對象里,你可以設置gui.menuBar.updatetoweb,若沒找到配置文件,則會采用默認的文字信息
如果要知道如何新增id,請參考文章 https://www.cnblogs.com/lickies1983/p/11918610.html
2下面,我們需要新增SB3UpdateToWeb定義
3我們需要找到containers/sb3-downloader.jsx復制一份名稱為sb3-updatetoweb.jsx
4找到scr/libs/download-blob.js 復制一份名稱更改為updatetoweb-blob.js
5打開sb3-updatetoweb.jsx
更改CLASS 定義為SB3UpdateToWeb,更改函數downloadBlob為updatetowebBlob
同時將該文件下的所有的SB3Downloader更改為SB3UpdateToWeb(注意)
目前為止,保存運行
最后,相關的動作和操作其實都在updatetoweb-blob.js
首先,需要將BLOB轉化為file格式
提交upload時需要更換為formdata格式
采用fetch提交到后台接口並返回url
以上幾個步驟,請自行根據后台接口格式跟換
最后一步是根據url采用fetch上傳到作業的數據庫,此部分根據接口自行處理
附件:sb3-updatetoweb.jsx,updatetoweb-blob.js
--------------------------------------------------------------------
博主:雷君(微軟MVP,眾聚互聯CEO)
長期致力於企業IT服務,以及青少年編程培訓課程
培訓機構討論熱線:18859773999
--------------------------------------------------------------------