wx.uploadFile 上传多张图片 后台 PHP 前端后台完整代码
时间: 2024-09-11 21:07:44 浏览: 44
在微信小程序中使用`wx.uploadFile`方法可以实现文件上传功能,包括多张图片。下面我将为你提供一个简单的前端和后端的示例代码,用于实现这一功能。
首先,我们需要在前端使用`wx.uploadFile`方法上传图片:
```javascript
// 前端JavaScript代码
wx.chooseImage({
count: 9, // 选择图片数量
success(res) {
const tempFilePaths = res.tempFilePaths;
const url = 'http://yourserver.com/upload.php'; // 后端接口地址
tempFilePaths.forEach((filePath, index) => {
wx.uploadFile({
url: url,
filePath: filePath,
name: 'file' + index,
success(uploadRes) {
console.log('上传成功', uploadRes.data);
},
fail(uploadErr) {
console.log('上传失败', uploadErr);
}
});
});
}
});
```
接着,我们需要在PHP端接收文件并处理上传:
```php
<?php
// 后端PHP代码
// upload.php
// 设置允许上传的文件类型
$allowTypes = array('image/jpeg', 'image/png');
// 设置允许上传的最大文件大小(单位:字节)
$maxSize = 2097152; // 2MB
// 检查是否有文件被上传
if (empty($_FILES)) {
echo json_encode(array('error' => '没有文件被上传'));
exit;
}
// 检查文件数量
if (count($_FILES) > 9) {
echo json_encode(array('error' => '文件数量超过限制'));
exit;
}
$uploadArr = array();
foreach ($_FILES as $file) {
// 检查文件类型
if (!in_array($file['type'], $allowTypes)) {
echo json_encode(array('error' => '文件类型不支持'));
exit;
}
// 检查文件大小
if ($file['size'] > $maxSize) {
echo json_encode(array('error' => '文件大小超出限制'));
exit;
}
// 检查上传目录是否存在
if (!is_dir('uploads')) {
@mkdir('uploads', 0777, true);
}
// 获取文件扩展名
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
// 移动文件到指定目录
$dest = 'uploads/' . uniqid() . '.' . $ext;
if (!move_uploaded_file($file['tmp_name'], $dest)) {
echo json_encode(array('error' => '文件上传失败'));
exit;
}
// 文件信息数组
$uploadArr[] = array(
'file_path' => $dest,
'file_name' => $file['name']
);
}
// 返回上传成功信息
echo json_encode(array('success' => $uploadArr));
?>
```
这段代码假设你的服务器环境已经配置好并且可以正确处理PHP脚本。
阅读全文