我使用的是Laravel 4.我的操作系统是Ubuntu 13.10,我的本地服务器是Apache。 我想要做的是将文件上传到文件夹下的服务器。问题是上传后的文件夹和文件都由'nobody'拥有,而我希望我是所有者并拥有所有权限。我不想在终端上使用cmod或chown等解决方案,因为每次上传文件时都需要执行这两个解决方案。即使更改文件夹的所有者上传文件也没有正确上传。这是我的表单(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>
这是我的路线:
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 ;
});
答案 0 :(得分:0)
首先你应该创建一个根文件夹,你可以在其中将文件上传到它根目录的更改组..
chgrp dirname groupname
并使该组的www-data apache用户成员 那么你将能够访问该文件..
答案 1 :(得分:0)
您应该将运行Apache服务器的用户更改为与您的用户相同的用户。这使得Apache创建的文件/文件夹由适当的用户(您)拥有,因此可以访问它们。
要在Ubuntu中切换Apache用户,您必须:
编辑envvars文件:
sudo gedit /etc/apache2/envvars
变化:
export APACHE_RUN_USER=nobody
export APACHE_RUN_GROUP=nobody
为:
#export APACHE_RUN_USER=nobody
#export APACHE_RUN_GROUP=nobody
export APACHE_RUN_USER=YOUR_USER_NAME
export APACHE_RUN_GROUP=YOUR_USER_NAME