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 @   流浪2024  阅读(763)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示