PHP + Layui 文件上传(图片)

8 篇文章 0 订阅
4 篇文章 0 订阅

部分

<div class="layui-form-item">
   <label class="layui-form-label">上传图片</label>
   <div class="layui-input-inline">
       <div class="layui-upload">
           <button type="button" class="layui-btn" id="btn_main">上传图片</button>
           <div class="layui-upload-list main_img">
               <img src="{$info['img'] ?? ''}" class="layui-upload-img upload-img" id="main_img">
           </div>
       </div>
   </div>
</div>

js部分

var uploadInst = upload.render({
    elem: '#btn_main'
    ,url: '/common/upload/layupload'
    ,field: 'img'
    ,done: function(res){
        console.log(res)
        if(res.code < 0){
            return layer.msg(res.msg);
        }
        $('.main_img').html('<img  src="/public/'+res.path+'"  class="layui-upload-img upload-img" id="main_img">');
    }
});

php部分

public function layUpload()
	{
		if(!$this->request->isPost()) return show(config("status.error"), '非法请求');

		//上传文件目录获取
		$month = date('Ym', time());
		$dir = app()->getRootPath(). "public/topic/" . $month . "/";

        $filename = $_FILES["img"]["name"];
        $newname = explode('.',$filename);
        $newname = time().'.'.array_pop($newname);

        
		//初始化返回数组
		$imgsrc = $dir . $newname;

        $returnname = explode('public',$imgsrc);
        
		$file_info = $_FILES['img'];
		$file_error = $file_info['error'];
		if (!is_dir($dir)) //判断目录是否存在
		{
			mkdir($dir, 0777, true); //如果目录不存在则创建目录
		};
		// $file = $dir . $_FILES["file"]["name"];
		if ($file_error == 0) {
			if (move_uploaded_file($_FILES["img"]["tmp_name"], $dir . $newname)) {
                return json(['code' => 1, 'path' => $returnname[1]]);
			} else {
				$errormsg = "上传失败";
			}
		} else {
			switch ($file_error) {
				case 1:
					$errormsg = '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
					break;
				case 2:
					$errormsg = '超过了表单max_file_size限制的大小';
					break;
				case 3:
					$errormsg = '文件部分被上传';
					break;
				case 4:
					$errormsg = '没有选择上传文件';
					break;
				case 6:
					$errormsg = '没有找到临时文件';
					break;
				case 7:
				case 8:
					$errormsg = '系统错误';
					break;
			}
		}
        return json(['code' => 0, 'msg' => $errormsg]);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值