下载demo看了一下,发现根本看不懂!!
然后就去找同事寻求帮助,从第一个按钮开始慢慢研究。
有用的按钮就两个,一个是选择文件,一个数开始上传,一张图的上传还比较简单,写个接口从后台读取OSSAccessKeyId、signature这些参数再上传就好了,问题是有多个按钮怎么弄!从选择文件开始,选择文件的按钮在plupload.Uploader是可以传数组的!!,想了好久,还是得靠百度解决问题。。
第一个按钮搞定了。开始第二个。
第二个就没这么容易搞定了
从最简单的开始,看到了有PostInit里面有个方法叫document.getElementById('postfiles').onclick = function () {
set_upload_param(uploader, '', false);
return false;
}
id就是开始上传的按钮,console.log一下,果然是这个,然后又开始研究set_upload_param函数。
上传一张图的时候直接请求接口拿到参数给个名字上传就完事了,多张图的时候每次请求拿到的回调都是同一个函数..
开始怀疑是不是接口写的有问题了。又卡了一个小时,不断的console.log(),终于看到文件名字是JS生成的!
接口只返回文件夹名字。。
代码很简单,排查起来感觉特别复杂,特别是对于我这种2年没写过js代码的人来说简直要了老命了!
关于怎么给多个缩略图赋值的问题:
设置一个全局变量type,在每个开始上传的函数里面赋值type=ID名字
然后上传成功的时候$("#"+type).attr('src',路径)就好了
上传的函数里面还有个BeforeUpload,也卡了我好久,每次都会调用两次上传函数,一直想不明白,以为是前面的代码影响的,不断的console.log才打印出来问题,把BeforeUpload注释掉就能正常上传了
下面是80%的js代码,以此记录一下
//设置上传参数
function set_upload_param(up, filename, ret,num) {
var url = "{:url('/owner/index/ossAli')}";
$.get(url, function (data) {
if(data.code==1){
var data = data.data;