dtpd58676
2013-11-17 13:12
浏览 43
已采纳

Laravel 4,Ubuntu,Apache将文件作为所有者上传到一个文件夹中

I am using Laravel 4. My operating system is Ubuntu 13.10 and my local server is Apache. What I am trying to do is upload a file to the server under a folder. The problem is that both the folder and the file after the upload are owned by 'nobody' while I want me to be the owner and have all the permissions too. I don t want a solution such as cmod or chown on terminal cause both of them need to be executed every time I upload a file. Even if a change the owner of the folder uploads the files are not correctly uploaded.Here is my form(firstform.blade.php):

<form action="{{ url('form-handler') }}" method="POST" enctype="multipart/form-data" />

<input  name="foo"  /><br/>
<input  name="baz"  />
<br/>

<input type="file" name="book" />
<input type="submit" value="Send" />


</form>

And here is my routes:

Route::get('firstform', function()
{
    return View::make('firstform');


});


Route::post('form-handler',function(){

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

$path=Input::file('book')->move('uploads/', $name);

echo 'The file uploaded is : ' .$name .' and is located in ' .$path ;


});
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongzou7134 2013-11-18 12:49
    已采纳

    You should change the user under which the Apache server is operating - to the same user as yours. That makes the files/folders created by Apache owned by the proper user (you) so they are accessible.

    To switch the Apache user in Ubuntu you have to:

    Edit the envvars file:

    sudo gedit /etc/apache2/envvars
    

    Change:

    export APACHE_RUN_USER=nobody
    export APACHE_RUN_GROUP=nobody
    

    to:

    #export APACHE_RUN_USER=nobody
    #export APACHE_RUN_GROUP=nobody
    export APACHE_RUN_USER=YOUR_USER_NAME
    export APACHE_RUN_GROUP=YOUR_USER_NAME
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • doubo3384 2013-11-17 13:34

    firstly you should create root folder in which you are suppose to upload file into it change group of that root dir..

    chgrp dirname  groupname
    

    and make www-data apache user member of that group then you will be able to access that file..

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题