最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生JS實(shí)現(xiàn)文件上傳

 更新時(shí)間:2022年07月17日 10:51:45   作者:Tiny2017  
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)文件上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JS實(shí)現(xiàn)文件上傳的具體代碼,供大家參考,具體內(nèi)容如下

一、目的:

實(shí)現(xiàn)上傳圖片功能

二、效果:

三、思路:

用input標(biāo)簽自帶的上傳,先隱藏掉,給上傳按鈕添加點(diǎn)擊事件,綁定input的點(diǎn)擊事件

四、代碼:

//html
<input ref="img-upload-input" class="img-upload-input" type="file" accept=".png, .jpg" @change="submitUpload">
<el-button style="margin-top: 20px" type="primary" @click="handleSelectedImg">選擇圖片</el-button>
//js
//點(diǎn)擊上傳按鈕
handleSelectedImg() {
?this.$refs['img-upload-input'].click()
},
?//選好圖片之后點(diǎn)擊打開(kāi)按鈕
submitUpload(e) {
? const files = e.target.files
? const rawFile = files[0] // only use files[0]
? if (!rawFile) return
? this.upload(rawFile)
},
?//上傳
upload(rawFile) {
? ?this.$refs['img-upload-input'].value = null // fix can't select the same excel
? ?if (!this.beforeUpload) {
? ? ?return
? ?}
? ?//檢查文件是否滿足條件
? ?const before = this.beforeUpload(rawFile)
? ?if (before) {
? ?//上傳事件
? ? ?this.uploadSectionFile(this.uploadParams, rawFile)
? ?}
},
beforeUpload(file) {
? ?const isLt1M = file.size / 1024 / 1024 < 50

? ?if (isLt1M) {
? ? ?return true
? ?}
? ?console.log('上傳文件不超過(guò)50M', 'warning')
? ?return false
},
uploadSectionFile(params, file) {
? ?let data = params
? ?let fd = new FormData()// FormData 對(duì)象
? ?let fileObj = file// 相當(dāng)于input里取得的files
? ?fd.append('stationID', data.stationID)
? ?fd.append('date', data.date)
? ?fd.append('file', fileObj)// 文件對(duì)象
? ?supplementFile(fd).then(res => {
? ? ?//調(diào)用上傳接口
? ?})
}

五、注意事項(xiàng)

封裝的請(qǐng)求頭是(后面發(fā)現(xiàn)也不一定要配置這個(gè))

'Content-Type': 'multipart/form-data;'

axios request的攔截轉(zhuǎn)換直接return

transformRequest: [function(data) {
? ? // 對(duì) data 進(jìn)行任意轉(zhuǎn)換處理
? ? return data
? }],

六、常見(jiàn)問(wèn)題

1.上傳文件的同時(shí)要傳別的參數(shù)怎么辦?

可以把參數(shù)和文件裝在一個(gè)文件對(duì)象里面

let fd = new FormData()
fd.append('file', file)//文件
fd.append('param1', param)

2.文件大小的限制問(wèn)題

1)、前端上傳文件時(shí)限制可選文件大小
2)、后端Springboot限制
3)、nginx配置限制,當(dāng)前端發(fā)送請(qǐng)求后端接收不到的時(shí)候,可以檢查nginx配置。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

九寨沟县| 博客| 海口市| 历史| 宁武县| 封开县| 于田县| 谷城县| 保山市| 平利县| 巨鹿县| 丹东市| 安图县| 福清市| 内乡县| 交城县| 建平县| 隆德县| 张掖市| 虎林市| 辽宁省| 武川县| 新田县| 监利县| 曲水县| 鄂托克旗| 洪江市| 虹口区| 高安市| 冷水江市| 浪卡子县| 汕头市| 辉南县| 稻城县| 三原县| 威信县| 晴隆县| 云龙县| 会东县| 五原县| 宜阳县|