Uni-app图片上传操作,利用Uview搭配thinkPHP3.2.3框架进行

技术栈:thinkPHP3.2.3;UView2.0;Uni-app

Uview框架u-upload文件(图片)上传组件简单介绍

Upload 上传 | uView 2.0 - 全面兼容nvue的uni-app生态框架 - uni-app UI框架

Uview框架这里不再多说,u-upload是其组件之一,该组件用于上传图片场景。

以官方代码为例,特别注意下面这么方法:

uploadFilePromise(url) {
	return new Promise((resolve, reject) => {
		let a = uni.uploadFile({
			url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
			filePath: url,
			name: 'file',
			formData: {
				user: 'test'
			},
			success: (res) => {
				setTimeout(() => {
					resolve(res.data.data)
				}, 1000)
			}
		});
	})
},

这个方法才是与服务器接口进行数据通信的地方

ThinkPHP3端上传文件接口编写

 /**
 * 上传图片
 */
  public function upload(Type $var = null){
    $files = $_FILES['file'];
    // dump($files);
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     3145728 ;// 设置附件上传大小
    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $upload->rootPath  =     './'; // 设置附件上传根目录
    $upload->savePath  =     'Public/uploads/'; // 设置附件上传(子)目录
    $info   =   $upload->uploadOne($files);
    // dump($info);
    if(!$info) {
	      // 上传错误提示错误信息
			  $this->error($upload->getError());
		}else{
			  // 上传成功 获取上传文件信息
		    $infopath = $info['savepath'].$info['savename'];
	          
        $return_data = array();
        $return_data['error_code'] = 0;
        $return_data['msg'] = '图片上传成功';
        $return_data['infopath'] = $infopath;

        $this->ajaxReturn($return_data);
		}
  }

图片上传中遇到的问题

  1. ThinkPHP上传失败,权限问题,如下:

在这里插入图片描述

遇到这种情况是一般是文件夹权限不够,使用ssh远程连接工具,修改文件夹下所有文件读写权限,包括你要写入的文件夹的权限

sudo chmod -R 777 XXXXX(文件夹)
  1. 返回的return_data为字符串类型

    使用JS字符串和对象之间的相互转换方法。

    js字符串和对象之间的转换_tony康的博客-CSDN博客_js字符串转对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuZou 邹宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值