今天有个功能需要上传附件,又开始捡起几个月前已经放弃的jquery file upload 插件。

载入页面的时候,浏览器控制台报错:

Cannot read property 'parseMetaData' of undefined


jquery.fileupload-image.js:268

并且,在选择文件之后,该有的缩略图也没显示出来,只显示文件名:

jquery file upload报错:Cannot read property

关于这个parseMetaData的报错问题,在之前的博客中也写过一篇,说这个词是和文件相关的,好像和文件缩略图也有关,报错原因是jquery file upload插件中的几个js文件引用顺序有误有关,看看目前的情况:

............


报错的代码:

loadImage.parseMetaData(data.files[data.index], function (result) {...

也就是说,jquery.fileupload-image.js中,找到了loadImage,但它还没用 parseMetaData 这个属性。很显然,loadImage是load-image.min.js中的,而jquery.fileupload.js 中会对已经声明的loadImage进行处理,比如设置一些属性什么的。


但是,load-image.min.js 在jquery.fileupload.js 之后出场的话,上述步骤就无法进行了。

因此,尝试调整一下上述js文件的引用顺序,让 load-image.min.js 先出场:

......

刷新页面,不报错了,选择文件之后的缩略图也正常显示了:


jquery file upload报错:Cannot read property
问题解决。这唐僧大哥的表情一如我现在的心情啊jquery file upload报错:Cannot read property