在开发项目的时候需要在一次请求中能够上传多张图片,本以为使用cordova的相关插件file-transer就能轻松搞定。但是真的想的太简单了,cordova plugin的file-transer一次只能上传一个文件,如果想要用循环的方式,就会再后台产生多条记录显然不是我们需要的。最后翻了很多博客后加上自己调试终于实现。
<div class="item row row-wrap">
<div ng-repeat="item in files" class="col col-25">
<div class="pos-relative level-center w60 h60">
<img ng-src="{
{item}}">
<i ng-click="deleteFile(item)" class="icon ion-close-circled pos-absolute deleteFile"></i>
</div>
</div>
<div ng-if="files.length < 6" ng-click="showActionSheet()" class="col col-25">
<div class="text-align-center level-center pt5 w60 h60" style="border: 1px solid #b3b3b3;">
<i class="icon ion-plus-round font30"></i>
<p ng-bind="i18n.upload_accessory_btn" class="text-align-center font12"></p>
</div>
</div>
</div>
function dealFiles(imageAry) {
$ionicLoading.show();
const deferred = $q.defer(),
promise = _.map(imageAry, (item, key) => {
const def = $q.defer(); // 这里再次使用$q.defer为了确保所有图片已经转化完毕
window.resolveLocalFileSystemURL(item, fileEntry => {
file