首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 5.2 UploadedFile realPath不是/tmp而是/public

Laravel 5.2是一款流行的PHP开发框架,提供了丰富的功能和工具来简化Web应用程序的开发过程。在Laravel中,UploadedFile是用于处理上传文件的类,而realPath属性用于获取上传文件的真实路径。

在Laravel 5.2中,默认情况下,UploadedFile的realPath属性返回的是上传文件在服务器上的临时路径,通常是在/tmp目录下。然而,如果你希望将上传文件保存在/public目录下而不是/tmp目录下,可以通过一些配置来实现。

首先,你需要在Laravel的配置文件config/filesystems.php中找到disks数组,并添加一个新的磁盘配置,如下所示:

代码语言:php
复制
'disks' => [
    // 其他磁盘配置...
    
    'public_uploads' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
        'url' => env('APP_URL').'/uploads',
        'visibility' => 'public',
    ],
],

上述配置中,我们创建了一个名为public_uploads的磁盘配置,使用本地驱动(driver)来保存文件。root属性指定了文件保存的根目录,这里我们设置为public目录下的uploads文件夹。url属性指定了文件的访问URL,这里我们使用了应用程序的URL加上/uploads路径。visibility属性指定了文件的可见性,这里设置为public,表示文件可以通过URL直接访问。

接下来,你需要在你的代码中使用这个新的磁盘配置来保存上传文件。假设你有一个上传文件的表单,可以使用以下代码来处理上传文件并将其保存在/public/uploads目录下:

代码语言:php
复制
use Illuminate\Support\Facades\Storage;

public function uploadFile(Request $request)
{
    if ($request->hasFile('file')) {
        $file = $request->file('file');
        $path = $file->store('uploads', 'public_uploads');
        
        // 获取文件的公共访问URL
        $url = Storage::disk('public_uploads')->url($path);
        
        // 其他操作...
    }
}

上述代码中,我们使用store方法将上传文件保存在public_uploads磁盘配置指定的目录下。通过Storage::disk('public_uploads')->url($path)可以获取文件的公共访问URL,你可以将该URL用于展示或下载文件。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券