你好我仍然是将localhost项目变成putty服务器的新手,我也使用fileZilla。
我的上传图片功能在localhost中工作正常,但是当我在服务器中尝试它时。错误就是这样发生的
这是我的控制器
public function uploadPic(Request $request)
{
$rules = ['image' => 'required|image|max:1024*1024*1'];
$validator = \Validator::make($request->all(),$rules);
if($validator->fails())
{
return redirect('profile')->withErrors($validator);
}
else
{
$file = $request->file('image');
$file->move(public_path("profile-image/"), $file->getClientOriginalName());
$thisUser = \Auth::id();
$result = User::where('id','=',$thisUser)->update(['path_gambar' => $file->getClientOriginalName()]);
}
return redirect('profile');
}
这是视图刀片
<form class="form-group-sm" action="{{ url('/upload-image') }}" method="post" enctype="multipart/form-data">
<input id="token" type="hidden" name="_token" value="{{ csrf_token() }}">
<div>
<input type="file" class="btn" name="image" id="file">
</div>
<span class="help-block">
<strong>{{ $errors->first('image') }}</strong>
</span>
<div style="text-align: inherit">
<button type="submit" class="btn btn-group-sm" value="upload" name="Submit">Upload</button>
</div>
</form>
答案 0 :(得分:1)
您的问题是文件系统权限错误或错误的文件路径错误。
这在本地计算机上运行的原因是因为您的本地系统更加宽松 - 您的用户具有足够的权限来编写文件,或者系统可以帮助您解决错误的路径。这可能是因为您使用的操作系统(如Windows)不会像* nix服务器那样强制执行权限。
让我们来看看这些问题
<强>路径强>
看看你的道路。双斜线是一件坏事。
/无功/网络/ HTML / Gracia的/公共//轮廓图像
可能存在一些潜在问题,但快速修复测试是使用realpath()。
$file->move(realpath(public_path("profile-image/")), $file->getClientOriginalName());
现在您必须确认您的服务器上实际存在该目录。 SSH(putty)进入系统并运行:
ls -l /var/www/html/gracia/public
或FTP并导航到路径。
profile-image
目录必须在那里。
<强>权限强>
SSH(putty)进入系统并运行:
ls -l /var/www/html/gracia/public
输出(示例):
drwxr-xr-x 2 gracia users 4096 Jun 19 12:27 profile-image
这些权限意味着只有用户gracia
才能写入目录。 Web服务器可能不以此用户身份运行,因此您必须更改权限,以便该用户可以访问该目录。
以下是如何使目录可写入所有用户。
chmod -R 777 public-image/
输出(示例):
drwxrwxrwx 2 gracia users 4096 Jun 19 12:27 profile-image