下面就是关于“微信小程序图片选择、上传到服务器、预览 (PHP)实现实例”的完整攻略。
1. 微信小程序图片选择
在微信小程序中,我们可以使用chooseImage
接口上传图片。该接口会调起用户的相册,并允许用户在相册中选择一张或者多张图片。具体的调用方式如下:
wx.chooseImage({
count: 1, // 最多选择一张图片
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths;
}
});
2. 将图片上传到服务器
图片被选择后,我们需要将它们上传到服务器。为了上传图片,我们需要通过小程序的wx.uploadFile
接口上传文件。下面是一个示例,演示了如何将图片上传到服务器:
wx.chooseImage({
success: function(res) {
var tempFilePaths = res.tempFilePaths;
wx.uploadFile({
url: 'https://www.example.com/upload.php', // 上传图片的接口地址
filePath: tempFilePaths[0], // 要上传的图片的本地文件路径
name: 'file', // 上传文件的名称,后台可以通过$_FILES['file']来获取这个文件对象
success: function(res){
var data = res.data
//do something
}
})
}
})
3. 在服务器端保存图片
接下来,我们需要在服务器端保存上传的图片。可以使用move_uploaded_file
函数将上传的文件保存在服务器上指定的目录中。在此之前,我们需要确保目标文件夹有足够的权限来保存这些文件。
//根据时间生成随机的文件名
$target_file = "uploads/" . time() . rand(1000, 9999) . ".jpg";
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
4. 预览上传的图片
上传图片后,我们可以在小程序中预览这些上传的图片。为了实现这个功能,我们可以使用wx.previewImage
接口预览图片。这个接口可以支持本地图片和远程图片,但是本文只讨论本地图片的预览。下面是一个示例:
wx.chooseImage({
success: function (res) {
var tempFilePaths = res.tempFilePaths
wx.uploadFile({
url: 'https://www.example.com/upload.php',
filePath: tempFilePaths[0],
name: 'file',
success: function(res){
var data = res.data
// 上传图片成功后,预览图片
wx.previewImage({
urls: [tempFilePaths[0]]
})
}
})
}
})
示例说明
示例1: 上传图片和预览
下面是一个示例,在此示例中,我们编写了一个小程序,用于选择图片,将这些图片上传到服务器,并在上传完成后浏览这些图片:
//app.js
App({
// ...
onLaunch: function () {
// ...
}
})
//pages/index/index.js
Page({
data: {
images: []
},
chooseImage: function () {
var self = this
wx.chooseImage({
count: 1, //最多选择一张图片
success: function(res) {
var tempFilePaths = res.tempFilePaths;
wx.uploadFile({
url: 'https://www.example.com/upload.php',
filePath: tempFilePaths[0],
name: 'file',
success: function(res){
var data = res.data;
//上传成功后,就可以预览图片了
wx.previewImage({
urls: [tempFilePaths[0]]
})
//将上传的图片保存到数组中,便于显示
var images = self.data.images.concat(tempFilePaths);
self.setData({
images: images
});
}
})
}
})
}
})
示例2: 上传多张图片
下面是另一个示例,在此示例中,我们编写了一个小程序,用于选择多张图片,将这些图片上传到服务器:
//app.js
App({
// ...
onLaunch: function () {
// ...
}
})
//pages/index/index.js
Page({
data: {
images: []
},
chooseImage: function () {
var self = this
wx.chooseImage({
count: 9, //最多选择9张图片
success: function(res) {
var tempFilePaths = res.tempFilePaths;
wx.showLoading({
title: '图片上传中',
});
//循环上传每一张图片
for (var i = 0; i < tempFilePaths.length; i++) {
wx.uploadFile({
url: 'https://www.example.com/upload.php',
filePath: tempFilePaths[i],
name: 'file',
success: function (res) {
var data = res.data;
//将上传的图片保存到数组中,便于显示
var images = self.data.images.concat(tempFilePaths[i]); //这里的i是不会有用的
self.setData({
images: images
});
},
complete: function () {
wx.hideLoading();
}
})
}
}
})
}
})
这就是关于“微信小程序图片选择、上传到服务器、预览(PHP)实现实例”的完整攻略,希望能对你有所帮助。
本文链接:https://my.lmcjl.com/post/14874.html
展开阅读全文
4 评论