0

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

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

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

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

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

它抛出这个错误: Laravel 错误

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

4

2 回答 2

1

你可以$_SERVER['DOCUMENT_ROOT']改用。

$var = $_SERVER['DOCUMENT_ROOT'].'/uploads';

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

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

于 2013-10-13T13:59:41.247 回答
0

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

如果您想选择一个文件夹public/uploaded,可以使用public_path().'/uploaded. 如果您想选择一个文件夹app/storage/uploaded,可以使用storage_path().'/uploaded.

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

if ($file->move( public_path().'/uploaded', $file->getClientOriginalName() )) {
    echo 'uploaded';
}
于 2013-10-13T15:39:42.550 回答