微信小程序用ES6Promise.all批量上传文件

  • • 发表于 8年前
  • • 作者 马小云
  • • 5966 人浏览
  • • 5 条评论
  • • 最后编辑时间 8年前
  • • 来自 [技 术]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

客户端

Page({
    onLoad: function() {
        wx.chooseImage({
            count: 9,
            success: function({ tempFilePaths }) {
                var promise = Promise.all(tempFilePaths.map((tempFilePath, index) => {
                    return new Promise(function(resolve, reject) {
                        wx.uploadFile({
                            url: 'https://www.mengmeitong.com/upload',
                            filePath: tempFilePath,
                            name: 'photo',
                            formData: {
                                filename: 'foo-' + index,
                                index: index
                            },
                            success: function(res) {
                                resolve(res.data);
                            },
                            fail: function(err) {
                                reject(new Error('failed to upload file'));
                            }
                        });
                    });
                }));

                promise.then(function(results) {
                    console.log(results);
                }).catch(function(err) {
                    console.log(err);
                });
            }
        });
    }
});

服务端

<?php

use IlluminateHttpRequest;

Route::post('/upload', function (Request $request) {
    if ($request->photo->isValid()) {
        $request->photo->storeAs('images/foo/bar/baz', $request->filename . '.' . $request->photo->extension());
        return ['success' => true, 'index' => $request->index];
    }
});
分享到:
5条评论
Ctrl+Enter
作者

马小云

马小云

APP:1 帖子:2 回复:3 积分:2

已加入社区[3231]天

主人太懒,签名没设置!

作者详情》
Top