微信小程序 ES6Promise.all批量上传文件实现代码

网络编程 2025-03-29 08:24www.168986.cn编程入门

微信小程序批量上传文件实现——利用ES6Promise.all高效处理

尊敬的开发者朋友们,你是否曾在微信小程序中遇到过需要批量上传文件的情况?今天,我将为大家介绍一种使用ES6的Promise.all方法实现的高效处理方式。

一、客户端实现

在客户端,我们首先通过wx.chooseImage接口获取用户选择的图片路径列表。然后,利用Promise.all方法,我们可以并行上传所有文件,并等待所有上传任务完成。以下是具体实现代码:

```javascript

Page({

onLoad: function() {

wx.chooseImage({

count: 9, // 根据实际需求设置图片数量

success: function({ tempFilePaths }) {

var promiseArray = tempFilePaths.map((tempFilePath, index) => {

return new Promise((resolve, reject) => {

wx.uploadFile({

url: ' // 上传地址

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.all(promiseArray).then(results => {

console.log(results); // 输出所有上传结果

}).catch(err => {

console.log(err); // 输出错误信息

});

}

});

}

});

```

二、服务端实现

在服务端,我们可以使用Laravel框架进行处理。当接收到客户端的上传请求时,我们验证文件的有效性,并将其存储到指定目录。以下是PHP代码示例:

```php

use IlluminateHttpRequest;

Route::post('/upload', function (Request $request) {

if ($request->file('photo')->isValid()) { // 验证上传的文件是否有效

$path = $request->file('photo')->storeAs('images/foo/bar/baz', $request->input('filename') . '.' . $request->file('photo')->getClientOriginalExtension()); // 存储文件,并返回存储路径或结果信息

return ['success' => true, 'index' => $request->input('index')]; // 返回成功信息及索引值等必要信息(根据实际业务需求进行返回)

} else {

// 文件无效的处理逻辑(如返回错误信息)...

}

});

``` 感谢大家的阅读,希望这个例子能帮助到大家。如有任何疑问或建议,欢迎在评论区留言交流。让我们共同学习进步,支持技术社区的发展!更多资料请访问本站获取。如有其它相关问题或需要了解更多相关知识,请访问我们的官网获取更多帮助和支持。感谢大家对本站的支持!

上一篇:sql处理数据库锁的存储过程分享 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by