laravel中的图片上传接口

本文介绍了使用Laravel框架进行图片上传的两种方法,重点讲解了如何利用Laravel的文件上传功能将图片存储到指定目录,并返回JSON格式信息供前端富文本编辑器使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//磁盘配置 默认是local磁盘 (config/filesystems.php文件)
在这里插入图片描述
//配置好root目录
在这里插入图片描述
使用laravel自带文件上传功能 会直接将文件(图片)存入 public/storage/images 文件,前端用的layui富文本编辑器,所以返回一个json格式


//laravel自带的文件上传功能  只要设置磁盘驱动即可
//store()函数为文件路径,如果没有则会自动创建
//在本控制器要引入
//use Illuminate\Support\Facades\Storage;
//use Illuminate\Http\Request;
public function img(Request $request)
   {
       $path = $request->file('file')->store('images');
       $data = array(
           'code' => 0,
           'msg'  => '上传成功',
           'data' => array(
               'src'   => "/storage/".$path,
               'title' => '图片标题',
           ),
       );
       return json_encode($data);
    }

用另一种方法
但是这种方法存储到哪个目录,我还没找到,所以当时用的第一种方法

public function img(Request $request){

$file_name = $_FILES['file']['name'];
       //$file_type = $_FILES["file"]["type"];
       $file_tmp = $_FILES["file"]["tmp_name"];
       $file_error = $_FILES["file"]["error"];
       $file_size = $_FILES["file"]["size"];

       if ($file_error > 0) { // 出错
           $message = $file_error;
       }elseif($file_size > 5048576){  //大概5M
           $message = "上传文件不能大于5MB";
       }else{

           $date = date('Ymd');
           $file_name_arr = explode('.', $file_name);
           $new_file_name = date('YmdHis') . '_' . mt_rand(1000,9999) . '.' . $file_name_arr[1];
           $path = "upload";
           $file_path = $path . $new_file_name;
           if (file_exists($file_path)) {
               $message = "此文件已经存在";

           }else{
            //这句不管用
			// if (!is_dir($path)){Storage::makeDirectory($path);}
               $upload_result = move_uploaded_file($file_tmp, $file_path);
               //此函数只支持 HTTP POST 上传的文件
               if ($upload_result) {
                   $status = 1;
                   $message = $file_path;
               } else {
                   $message = "文件上传失败,请稍后再尝试";
               }

           }
       }

       return $file_path;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值