Laravel 上传附件及访问

1.上传代码:

public function img(Request $request)
    {
       $file = $request->file('file');
       $old_name = $file->getClientOriginalName();//文件原名
       $ext = $file->getClientOriginalExtension();     // 扩展名
       $type = $file->getClientMimeType();     // image/jpeg
       $path = $file->storeAs(date('Y-m-d') . '/avatars', 'ceshi'.time().'.jpg');
       if($path){
            $data = array(
                       'code' => 200,
                       'msg'  => '上传成功',
                       'data' => array(
                           'src'   => "/storage/".$path,
                           'old_name' => $old_name,
                           'ext' => $ext,
                           'type' => $type
                       ),
                   );
       }else{
            $data = array(
                       'code' => 400,
                       'msg'  => '上传失败',
                       'data' => array(
                       ),
                   );
       }
       
       return json_encode($data,JSON_UNESCAPED_UNICODE);
    }

 

 获取上传附件其他信息

$file->guessExtension() //根据mime类型返回扩展名。return string | null
$file->getMimeType() //返回文件的mime类型。return string | null
$file->move(string $directory, string $name = null) //将文件移动到一个新的位置。return File
$file->getClientOriginalName() //返回原始的文件名。return string | null
$file->getClientOriginalExtension() //返回原始文件扩展名。 return string
$file->getClientMimeType() //返回文件mime类型。return string | null
$file->guessClientExtension() //根据客户端mime类型返回扩展。return string | null
$file->getClientSize() //返回文件的大小字节。return int | null
$file->getError() //返回上传文件的错误。return int
$file->isValid() //返回文件是否成功上传。return bool
$file->getMaxFilesize() //返回在php.ini中配置的上传文件的最大大小。return static int
$file->getErrorMessage() //返回一个包含信息的上传错误信息。return string

 

 2.访问设置

(1)因为Laravel框架项目绑定目录为Public目录,所以要访问 storage 目录需要创建一个软连接,让这个软连接指向需要访问的storage目录。命令如下:

php artisan storage:link

执行结果如下图:

 

 centos服务器创建软连接命令:

ln -s /opt/web/gedai-api/storage/app/public /opt/web/gedai-api/public/storage

 ln -s 目标目录 软连接目录

(2)修改项目配置文件:\config\filesystems.php,修改local为下面代码

  

'local' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
        ],

 

此时就可以通过 域名 + “src” 路径访问到上传的图片了。

 

 

posted @ 2022-05-23 18:24  流浪2024  阅读(738)  评论(0编辑  收藏  举报