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

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

刚好做到了这个功能,苦恼了两天错误原因是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看到了服务端情况,已经有图片上传上去了。
在这里插入图片描述
改变图片名字和文件名更改等,之后做到再更新吧,目前就些需求。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值