【发布时间】:2020-10-31 22:44:46
【问题描述】:
在 PostController@store 中的代码是:
public function store(PostFormRequest $request)
{
if($request->hasFile('cover_image')){
$filenamewithExt = $request->file('cover_image')->getClientOriginalName();
$filename = pathinfo($filenamewithExt, PATHINFO_FILENAME);
$extension = $request->file('cover_image')->getClientOriginalExtension();
$fileNameToStore = $filename.'_'.time().'.'.$extension;
$path = $request->file('cover_image')->storeAs('public/storage/cover_image',$fileNameToStore);
}else{
$fileNameToStore = 'noimage.jpg';
}
$post = new Posts();
$post->title = $request->get('title');
$post->category = $request->get('category');
$post->body = $request->get('body');
$post->cover_image = $fileNameToStore;
$post->slug = Str::slug($post->title);
$duplicate = Posts::where('slug', $post->slug)->first();
if ($duplicate) {
return redirect('new-post')->withErrors('Title already exists.')->withInput();
}
$post->author_id = $request->user()->id;
if ($request->has('save')) {
$post->active = 0;
$message = 'Post saved successfully';
} else {
$post->active = 1;
$message = 'Post published successfully';
}
$post->save();
return redirect('edit/' . $post->slug)->withMessage($message);
}
web.php 处的路由是
Route::post('new-post', 'PostController@store');
图片上传选项在create.blade.php 为:
<form action="/new-post" method="post" enctype="multipart/form-data">
.....
<label for="myfile">Select image files:</label>
<input type="file" id="cover_image" name="cover_image" multiple><br><br>
</form>
带时间戳的图片名称存储在数据库表中,但不存储在目录public/storage/cover_images中。
【问题讨论】:
-
错误是什么?
-
图片不保存在目录中,显示在博客页面中。当我检查数据库时,会存储附加时间戳的图像文件的名称。