我需要为头像保存图片。
有人能给我一个简单的代码来保存和检索图像吗?
我需要:
形式:
<form action="" method="post" role="form" multiple>
{{csrf_field()}}
<legend>Form Title</legend>
<div class="form-group">
<label for="">Your Image</label>
<input type="file" name="avatar">
</div>
<button type="submit" class="btn btn-primary">save</button>
<a href="{{'/'}}" class="btn btn-primary">back</a>
</form>
<img name="youravatar" src="">
</div>
路线:
Route::get('pic','avatarController@picshow');
Route::post('pic','avatarController@pic');
控制器:
我有avatarController
,但它是空的,因为我不知道该怎么做。
数据库:
表名:头像
字段:name id,imgsrc,created_at,Updated_at
其他:
我找到了这段代码,但我找不到任何内容:
if ($request->hasFile('avatar')) {
$file = array('avatar' => Input::file('avatar'));
$destinationPath = '/'; // upload path
$extension = Input::file('avatar')->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$extension; // renaming image
Input::file('avatar')->move($destinationPath, $fileName);
}
答案 0 :(得分:0)
首先,确保您的表单中有加密属性
<form action="#" method="post" enctype="multipart/form-data">
您可以在控制器中使用与此类似的内容
public function save(Request $request)
{
$file = $request->file('file');
// rename your file
$name = $file->getClientOriginalName();
\Storage::disk('local')->put($name, \File::get($file));
return "file saved";
}
是的,您也应该将文件路由存储在数据库中。
确保为图像使用一致的路径,例如
最后,您必须创建一个路径,以便公开访问您的图像文件,如下所示:
Route::get('images/{file}', function ($file) {
$public_path = public_path();
$url = $public_path . '/storage/' . $file;
// file exists ?
if (Storage::exists($archivo))
{
return response()->file($pathToFile);
}
//not found ?
abort(404);
});
的文档
我希望这可以让你了解该怎么做。
答案 1 :(得分:0)
在laravel 5.4中上传图片
$request->hasFile('image')
OR
$request->file('image')->isValid()
$request->inputname->store('folder-name') return image path 'folder name/created image name
$request->image->store('images')
Storage::disk('local')->exists('image name');
Storage::delete('image');
这是我的代码
if ($request->hasFile('image') && $request->file('image')->isValid())
{
$path = $request->image->store('images');
if(!empty($path)){
$edit = Model::FindOrFail($id);
// Delete old image
$exists = Storage::disk('local')->exists($edit->image);
if($exists){
Storage::delete($edit->image);
}
$edit->image = $path;
$edit->save();
}
}