【问题标题】:Laravel - File Uploading issues using a virtual hostLaravel - 使用虚拟主机的文件上传问题
【发布时间】:2013-10-21 04:17:39
【问题描述】:

我在使用虚拟主机中的 laravel 将文件上传到我的服务器时遇到问题。

情况是这样的:当我尝试上传一个指向绝对路径的链接时:

if ($file->move( 'laravel.dev/upload', $file->getClientOriginalName() )) {
                    echo 'uploaded';
                }

文件可以成功上传,尽管它会创建一个名为“laravel.dev”的文件夹,这是我的主机,并且在其中创建另一个名为“upload”的文件夹。另一方面,如果我这样设置我的代码:

if ($file->move( asset('uploaded'), $file->getClientOriginalName() )) {
                    echo 'uploaded';
                }

它会抛出这个错误:

我想要实现的是将文件直接上传到我在“projectname/public/”公共文件夹中创建的“upload”文件夹。我怎样才能做到这一点?

【问题讨论】:

    标签: php apache laravel laravel-4 virtualhost


    【解决方案1】:

    您可以改用$_SERVER['DOCUMENT_ROOT']

    $var = $_SERVER['DOCUMENT_ROOT'].'/uploads';
    
    if ( $file->move($var, $file->getClientOriginalName()) ) {
        echo 'uploaded';
    }
    

    您使用路径而不是 URL,例如 laravel.dev/upload

    【讨论】:

      【解决方案2】:

      正如 Juan 所发布的,您使用的是 url 路径而不是文件路径。 Laravel 有一些 path helpers 可以帮助你解决这个问题。

      如果您想选择像public/uploaded 这样的文件夹,您可以使用public_path().'/uploaded。 如果您想选择像app/storage/uploaded 这样的文件夹,您可以使用storage_path().'/uploaded

      在您的示例中,您可以使用以下代码:

      if ($file->move( public_path().'/uploaded', $file->getClientOriginalName() )) {
          echo 'uploaded';
      }
      

      【讨论】:

        猜你喜欢
        • 2011-04-24
        • 2011-02-18
        • 1970-01-01
        • 2019-02-11
        • 2012-02-27
        • 2011-12-10
        • 2017-09-28
        • 2016-05-16
        • 2019-05-01
        相关资源
        最近更新 更多