我有一个项目,我正在努力并面临一个小问题。我将在下面分享一些代码,让你们知道我在哪里。
这是我在控制器上的方法:
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = time() . '.' . $image->getClientOriginalExtension();
Image::make($image)->resize(200, 200)->save( public_path('/images/' . $filename ) );
$editors->image = $filename;
}
这是我对视图:
的输入<div class="form-group">
<label>Editor avatar</label>
<input type="file" name="image">
</div>
当我提交表单时,即使没有必要的错误消息,一切都还可以。 但是当我进入公共/图像里面的文件夹时,那里就没有了。
如果我去我的数据库,我会收到图片的这条路径:
C:\用户\用户\应用程序数据\本地\ TEMP \ php840D.tmp
可能是什么问题?
答案 0 :(得分:0)
检查您的上传文件夹(即“图片”)权限。应该有775的许可。
除此之外,你的代码很好。
注意:这应该让apache和FTP用户能够写入文件夹中的文件,但不要让其他人修改它们。
修改强>
检查以下几点:
- 您无权查看该文件。
- 使用chmod(“/ path / to / file.ext”,0755);添加ftp用户的查看权限。
- 您将文件移动到了不存储文件的位置。的/ dev / null的
- 你正在寻找错误的文件夹。你使用了完整的路径吗?
醇>
移动后不久将删除该文件。
注意:如果您在远程服务器上工作,那么上传的文件可能仍然在服务器队列中,因此您需要刷新并检查它。
答案 1 :(得分:0)
尝试这样做
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = time() . '.' . $image->getClientOriginalExtension();
$upload_success = Input::file('image')->move($destinationPath, $filename);
$image = Image::make("uploads/$filename")->resize(200, 200)->save();
if( $upload_success ) {
$editors->image = $filename;
}
else
{
$editors->image = 'unknown.png';
}
}