首页
学习
活动
专区
工具
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用于展示或下载文件。

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

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

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

相关·内容

  • 基于 Redis 消息队列实现文件上传的异步存储

    引子 本来准备给 Redis 实战入门篇做个收尾了,不过想起来 Laravel 进阶组件部分还剩下文件存储、邮件和通知这几个功能没有介绍,不如索性一并介绍下,因为它们并不是和 Redis 风马牛不相及,...Redis,对你优化 Laravel 应用性能实在是大有裨益。...Illuminate\Http\UploadedFile 对象的引用,因为 UploadedFile 对象不能被序列化,也就意味着无法将其作为载荷数据推送到消息队列。...关于文件存储和消息队列的语法细节,请参考对应的 Laravel 文档,这不是我们这里讨论的重点。 表单请求处理 完成以上后台准备工作后,就可以创建对应的前台路由、控制器动作和视图模板了。...return back()->withInput()->with(['status' => '文章发布失败,请重试']); } } 在处理文章发布的 store 方法中,我们没有直接处理图片的存储,而是通过

    3.5K20

    如何在Ubuntu 16.04上使用Deployer自动部署Laravel应用程序

    这使您可以将更多时间用于开发,而不是上载和配置。并允许您更频繁地部署。 在本教程中,您将自动部署Laravel应用程序,而不会出现任何宕机问题。...在current/public根目录的路径链接指向应用程序的最新版本。通过添加index指令,我们告诉Nginx index.php在请求目录位置之前首先查找文件,然后再查找它们的HTML副本。...我们将设置fastcgi指令以告诉Nginx使用应用程序的实际路径(在遵循符号链接后解析),而不是符号链接。...$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_pass...该应用程序.env在本地计算机上有一个文件,但Laravel的.gitignore文件将其从Git仓库中排除,因为在Git存储库中存储密码等敏感数据不是一个好主意,而且,应用程序需要在服务器上进行不同的设置

    15.6K10

    Laravel 非常规教程之0 引入篇

    老高又开始折腾laravel了 :-D (基于Laravel 5.2) 写在前面 此系列文章主要是记(瞎)录(扯)一些老高在研究 laravel 5.2 时的感悟。...常规教程在这里Laravel 5.2 中文文档,在此要十分感谢Laravel 学院!没有他laravel在国内也不会这么普及(老高)。...当然不要忘了Laravel还有一个子框架叫Luman,这个路人框架也值得学习! ps.Laravel老高去年就开始关注了,因为太忙(懒)了,所以一直没有深入学习这个框架。不过不要紧,该来的还是会来的。...php namespace App; interface A { public function get(); } var_dump(A::class);//string(5) "App\A...:false);" // bool(false) 安装 5.1 - 5.2的变化不是很激进,安装方法没有变化,所以安装其实没什么好说的,具体看这里Laravel 5.2 安装。

    88940

    完善你的Laravel异常处理

    这篇文章我们来简单梳理一下Laravel中提供的异常处理能力,然后讲一些在开发中使用异常处理的实践,如何使用自定义异常、如何扩展Laravel的异常处理能力。...--------------------------------------------- */ $app = new Illuminate\Foundation\Application( realpath...使用自定义异常 这部分内容其实不是针对 Laravel框架自定义异常,在任何项目中都可以应用我这里说的自定义异常。...的异常实例而抛出了 UserManagerException的实例,然后通过这个参数将 QueryException实例传递给 PHP异常的堆栈,这提供给我们回溯整个异常的能力来获取更多上下文信息,而不是仅仅只是当前抛出的异常实例的上下文信息...内部异常处理的机制以及扩展 Laravel异常处理的方式方法。

    2.8K20

    PHP中的文件系统函数(二)

    PHP中的文件系统函数(二) 这次我们来学习的是一些不是太常用,但却也非常有用的一些函数。它们中有些大家可能见过或者使用过,有一些可能就真的没什么印象了。...()); // int(673) realpath_cache_get() 函数用于获取真实目录缓存的详情,我们需要先使用 realpath() 获得一个目录路径,然后就可以看到 realpath_cache_get...注意这里的规则参数不是完全的正则表达式,关于它具体支持的语法可以自行查阅相关的文档。...就像 Laravel 的 .env 文件也是可以使用这两个函数进行读取的。...总结 一口气介绍了这么多函数,大家是不是都用过呢?有人要说了,写这玩意干嘛,直接去看文档不就好了嘛?

    99510
    领券