日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

plupload上传文件碰到的问题

發(fā)布時間:2024/3/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 plupload上传文件碰到的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景:公司的老項目,上傳文件使用的是swfupload插件(該插件依賴的是flash,使用的原因可能是當時這個插件有進度條等一系列的配置),但是現(xiàn)在該項目要求兼容火狐,從2020年1月份火狐和谷歌已經(jīng)拋棄了flash,所以對應的功能要找插件代替,所以最終選擇了plupload

1.基礎的API可以參考地址

https://www.cnblogs.com/2050/p/3913184.html

2.問題1:上傳多個文件時,最后一個文件不顯示進度條

我是在"FileUploaded"方法中處理上傳完成的回調邏輯的,為什么選擇這個方法是因為回調參數(shù)中包含后臺返回的數(shù)據(jù)

原來的寫法

uploader.bind('FileUploaded',function(uploader,file,serverData){//添加判斷如果當前待上傳為0,說明都已上傳完畢,再執(zhí)行后續(xù)邏輯if(uploader.total.queued!=0){return;}alert("分析完成"); })

修改之后的寫法——添加了定時器保證進度條加載后再執(zhí)行alert彈框

uploader.bind('FileUploaded',function(uploader,file,serverData){//添加判斷如果當前待上傳為0,說明都已上傳完畢,再執(zhí)行后續(xù)邏輯if(uploader.total.queued!=0){return;}setTimeout(function(){alert("分析完成");}) })
問題2:后臺要求接收的參數(shù)形式為數(shù)組,如果非數(shù)組則直接跳過接口,呈現(xiàn)的結果就是接口200,但是沒有走后臺(對接的是JAVA),但是前端都是一個一個文件上傳的。

網(wǎng)上找了很多方法都沒有找到合適的,后來參考之前插件發(fā)現(xiàn),在上傳最后一個文件時通過url多傳遞了一個參數(shù) “indentify”=“end”,后來猜想應該是后臺根據(jù)這個參數(shù)做了識別,才接收到的數(shù)組,但plupload本身都是通過start()方法單獨上傳文件的。

//在圖片上傳之前修改上傳地址和參數(shù) uploader.bind('BeforeUpload',function(uploader,file){//如果剩下最後一個文件時,添加該參數(shù),后臺會一起接收,接收到的數(shù)據(jù)為數(shù)組if(uploader.total.queued===1){uploader.settings.url = "原本的接口地址"+'?indentify=end'}else{uploader.settings.url = "原本的接口地址"//uploader.setOption("multipart_params",{"fileFileName":file.name,"fileContentType":'.txt'});} })
問題3:進度條自定義,當然標簽的嵌套不一樣,這些都是要自己定義的
//當文件添加到上傳隊列后觸發(fā) uploader.bind('FilesAdded',function(uploader,files){var fileHtml ="";if(files&&files.length>0){$.each(files,function(index,item){fileHtml+="<div><div>"+item.name+"<img uploadId='"+item.id+"' οnclick=delFile('"+item.id+"') src='<c:url value="/images/cancel.png"/>'/></div><div id='percent"+item.id +"'><span></span><span class='percentNum'></span></div></div>"})}//附件列表$("#fsUploadProgress").append(fileHtml) }); //上傳進度的監(jiān)聽 uploader.bind('UploadProgress',function(uploader,file){var percent = file.percent;if(percent==100){$("#percent" + file.id).find('.percentNum').html("上傳完成")$("#percent" + file.id).find('span').eq(0).css({width:"100%"})}else{$("#percent" + file.id).find('.percentNum').html(percent+'%')$("#percent" + file.id).find('span').eq(0).css({width:percent+'%'})} });

一個簡單的html頁面,資源可以免費下載

總結

以上是生活随笔為你收集整理的plupload上传文件碰到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。