ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ThinkPHP 接收前端上传的图片 / 文件

2022-01-27 23:03:35  阅读:198  来源: 互联网

标签:code 上传 前端 public ThinkPHP data image 图片


前言

上传图片还是文件这个可以根据你的修改,我这里展示的是上传图片,但是其实原理都是一样的
接收 —> 移动到目录 —> 返回图片路径。这里暂不支持多图上传,多图上传有时间会加上。

目录结构

目录结构

使用到的文件

Result.php

<?php
namespace app\business\Result;

class Result {
    //success
    static public function Success($data) {
        $rs = [
            'code'=>200,
            'message'=>"success",
            'data'=>$data,
        ];
        return json($rs);
    }
    
    /**
     * error
     * 402  图片上传格式错误
     * 500  错误
     * */
    static public function Error($code,$msg) {
        $rs = [
            'code'=>$code,
            'message'=>$msg,
            'data'=>"",
        ];
        return json($rs);
    }
}

Result.php 是用来格式化返回数据给前端的,可以根据自己的不同需求来进行修改。

upFile.php

<?php
namespace app\controller;
namespace app\validate;

use app\BaseController;
use app\business\Result\Result;

use think\Request;
use think\file\UploadedFile;

use think\Validate;

class upFile extends BaseController {
	public function index() {
		$data = $_POST;
		// image 前端图片名称
        $data['image'] = request()->file('image');

        $file = $data['image'];

		// 文件信息验证与上传到服务器指定目录
        $info = $file->validate([
            'size'=>5000000,  // 文件大小
            'ext'=>'jpg,jpeg,png,gif'  // 文件拓展名
        ])->move('static/');  // 移动到public/uploads目录下

        // 错误
        if($info == false){
            return Result::Error($file->getError());
        }

        // 获取文件名
        $data['image'] = $info->getSaveName();

		return Result::Sucess($data['image']);
	}
}

?>

其中 image 对应前端上传的图片字段名称,static/ 是存放在 public 文件夹下的,可要根据不同需求修改存放路径。我这边返回的是图片的名称,根据需要也可以返回图片访问路径。

标签:code,上传,前端,public,ThinkPHP,data,image,图片
来源: https://blog.csdn.net/weixin_44468853/article/details/122724772

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有