您的位置:首页 > 移动开发 > 微信开发

微信小程序 图片上传+php后台源码

2019-05-06 18:30 183 查看

微信小程序图片上传,权限控制

刚好做到了这个功能,苦恼了两天错误原因是mkdir(): Permission denied,研究了好久才发现是最简单的错误,php端的代码存放图片文件的路径得从根目录开始写。
微信小程序端的代码就不说了, 文档里都写的很详细,直接贴一下代码。

upLoadImg:function(){
var that = this;
var tempFilePath = that.data.filepath;
var uptime = Date.parse(new Date());
for(var i = 0;i<tempFilePath.length;i++)
{
wx.uploadFile({
url: 'https://www.************.cn/BookStoreProject/public/store.php/Index/upLoadImg',
filePath: tempFilePath[i] + '',
name: 'file',
header: {
"Content-Type": "multipart/form-data"
},
formData: {
"openid":app.globalData.openid,
"uptime":uptime,
},
success: function (res) {
console.log("图片传输成功" + JSON.stringify(res.data));
// 成功上传之后,删除后面的延迟函数,调用 toast函数
},
fail: function (res) {
console.log("图片传输失败" + JSON.stringify(res));
},
complete: function (res) {
console.log("图片传输结束" + JSON.stringify(res));
},
})
}
},

formData里面是我自己要传输的数据,可以不用理会不要误导,其他的每个人都差不多。
然后是php端的代码:

//上传图片到服务器
public function upLoadImg(Request $request){
$file = request()->file('file');
if ($file) {
$info = $file->move('/data/wwwroot/www.**********.cn/BookStoreProject/public/uploads/');
if ($info)
{
$file = $info->getSaveName();
$res = ['errCode'=>0,'errMsg'=>'图片上传成功','file'=>$file];
return json($res);
}
}
}

$info = $file->move(’/data/wwwroot/www.**********.cn/BookStoreProject/public/uploads/’);
这个是服务器端存放图片的地址。注意要写的比较详细吧,要写简单我也没去深究,反正多写点总不会出错。
一开始我有看了其他朋友的博客什么的,他们写的是public/uploads,所以我也无脑也这样写。卡了我两天。啪啪啪

然后就是要注意要把这个uploads文件夹设置可写的权限。
两种方式
①如果有winSCP之类的工具,可以直接找到那个文件夹右键属性更改权限。安全性需求不是很高的话,就直接全部勾上就好了。(相关域名我打码了0)

②如果没有类似工具链接服务器的话,比如腾讯云,阿里云的服务器,可以直接登录,进入webshell


登录之后,在webshell直接加一段代码
chmod -R 777 /data/wwwroot/www.********.cn/BookStoreProject/public/uploads/
域名我用*号代替了。
然后这样写了之后,权限问题应该也就解决了。
上一张结果图吧,这个是我通过winSCP看到了服务端情况,已经有图片上传上去了。

改变图片名字和文件名更改等,之后做到再更新吧,目前就些需求。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: