Laravel4无法创建目录,尽管我提供了正确的权限

Laravel4无法创建目录,尽管我提供了正确的权限,laravel,laravel-4,Laravel,Laravel 4,Laravel4无法创建目录,尽管我提供了正确的权限。 发生文件异常错误。 我尝试了很多权限 sudo chmod-R 777存储 sudo chmod-R 707存储 sudo chmod-ro+rwx存储 我甚至重新启动了Apache服务器。 我已经在谷歌上搜索了24小时左右,但还是不明白。。 以下是路由和视图文件 // routes.php Route::post('handle-form', function() { $name = Input::file('book')-

Laravel4无法创建目录,尽管我提供了正确的权限。 发生文件异常错误。 我尝试了很多权限

  • sudo chmod-R 777存储
  • sudo chmod-R 707存储
  • sudo chmod-ro+rwx存储
我甚至重新启动了Apache服务器。 我已经在谷歌上搜索了24小时左右,但还是不明白。。 以下是路由和视图文件

// routes.php

Route::post('handle-form', function()
{
    $name = Input::file('book')->getClientOriginalName();
Input::file('book')->move('/storage/directory', $name);
return 'File was moved.';
});

// form2.blade.php
<form action="{{ url('handle-form') }}"
  method="POST"
  enctype="multipart/form-data">

<input type="file" name="book" />
<input type="submit">
</form>

我给予的许可是sudo chmod-R 777存储

这是您可以做的工作:

在公用文件夹或任何其他位置创建目录:

 mkdir -p /var/www/your-site-path/public/storage/directory
使其可由Web服务器写入

sudo chmod 770 /var/www/your-site-path/public/storage/directory

sudo chown username:www-data /var/www/your-site-path/public/storage/directory
or
sudo chown dongju:httpd /var/www/your-site-path/public/storage/directory
告诉Laravel以这种方式将文件写入该文件夹:

$name = Input::file('book')->getClientOriginalName();

Input::file('book')->move(public_path().'/storage/directory', $name);    
使用这种方法,我在这里创建了这两条路线,它对我很有效:

Route::get('form', function() {
    return 

        Form::open(array('url' => 'http://your-dev-server-address/upload', 'files' => true)) .

        Form::file('book', $attributes = array()) .

        Form::submit('submit') .

        Form::close();
});

Route::post('upload', function() {

    Input::file('book')->move(public_path().'/storage/directory', Input::file('book')->getClientOriginalName());

});

第一个
/form
将向您显示一个文件上载表单,第二个
/upload
将获取文件并将其保存到正确的路径。

在我的情况下,问题是我使用了一个在调用时不可用的环境变量,所以我所要做的就是更改我使用的变量


简而言之,请检查您指定的路径。

谢谢您的回复。我已经尝试了“存储/目录”,但仍然不起作用。您需要查看哪些调试错误日志?好的,我刚刚完全编辑了我的答案,为您提供了所有步骤。我非常感谢您的详细解释,但仍然不起作用。抱歉,但您必须更具体一些,向我们展示您的文件夹和文件结构。“它不起作用”连猜测都不够。此外,您还应该查看您的Web服务器和Laravel日志,它们可能会告诉您发生了什么。我只是编辑了一下,向你们展示了我在这里做的测试,它成功了。Geekerti是我Mac电脑上的家庭用户。我的目录结构是。。。geekerati/Sites/learning-laravel/app/storage/directory
Route::get('form', function() {
    return 

        Form::open(array('url' => 'http://your-dev-server-address/upload', 'files' => true)) .

        Form::file('book', $attributes = array()) .

        Form::submit('submit') .

        Form::close();
});

Route::post('upload', function() {

    Input::file('book')->move(public_path().'/storage/directory', Input::file('book')->getClientOriginalName());

});