Php Laravel如何将图像上载到数据库并在视图中显示
因此,我制作了一个由三个字段组成的表单,标题、缩略图和文本区域(使用文本编辑器),它似乎可以上传图像,因为我注意到在提交表单后,我在我的Php Laravel如何将图像上载到数据库并在视图中显示,php,laravel,Php,Laravel,因此,我制作了一个由三个字段组成的表单,标题、缩略图和文本区域(使用文本编辑器),它似乎可以上传图像,因为我注意到在提交表单后,我在我的/public/image文件夹中上传了图像,但是当我检查数据库时,缩略图字段显示的不是/public/image文件夹中的文件名,比如20190713125534.jpg,而是 C:\xampp\tmp\phpC18A.tmp 我很困惑,我以为它根本不会上传图像,但正如我之前解释的那样,我的问题是如何用文件名更改缩略图字段的值,以及如何在视图中显示图像 这是
/public/image
文件夹中上传了图像,但是当我检查数据库时,缩略图字段显示的不是/public/image
文件夹中的文件名,比如20190713125534.jpg,而是
C:\xampp\tmp\phpC18A.tmp
我很困惑,我以为它根本不会上传图像,但正如我之前解释的那样,我的问题是如何用文件名更改缩略图字段的值,以及如何在视图中显示图像
这是我的Blogcontroller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Blog;
use Validator,Redirect,Response,File;
class BlogController extends Controller
{
public function index()
{
$blogs = Blog::get();
return view('post.post_textarea',[
'blogs' => $blogs
]);
}
public function store(Request $request)
{
Blog::create([
'name' => $request->name,
'message' => $request->message,
'thumbnail' => $request->thumbnail,
]);
if ($files = $request->file('thumbnail')) {
$destinationPath = 'public/image/'; // upload path
$profileImage = date('YmdHis') . "." . $files->getClientOriginalExtension();
$files->move($destinationPath, $profileImage);
$insert['thumbnail'] = "$profileImage";
}
return redirect()->back();
}
public function getFullPost($blog_id) {
$blogs = Blog::where('id', '=', $blog_id)->get();
return view('post.read')->with(compact('blogs'));
}
}
尝试将此添加到控制器中
$blog = new Blog;
$blog->name = $request->name;
$blog->message = $request->message;
if($request->hasFile('thumbnail')) {
$file = Input::file('thumbnail');
//getting timestamp
$timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString());
$name = $timestamp. '-' .$file->getClientOriginalName();
$file->move(public_path().'/images/', $name);
$blog->thumbnail = url('/images/' . $name);
}
$blog->save();
return back();
比你认为的要好
@foreach ($blogs as $blog)
<div class="blog-item">
<div class="blog-thumb">
<img src="{{ $blog->thumbnail }}" alt=""> ->this is where i was supposed to fetch the image
</div>
<div class="blog-text text-box text-white">
<div class="top-meta">{{ Carbon\Carbon::parse($blog->created_at)->format('d-m-Y') }} / di <a href="">Rakitan</a></div>
<h3>{{ $blog->name }}</h3>
<p>{!! \Illuminate\Support\Str::words($blog->message, 30, '...') !!}</p>
<a href="{{ route('post.read', ['blog_id' => $blog->id]) }}" class="read-more">Lanjutkan Baca <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
</div>
</div>
@endforeach
@foreach($blogs作为$blog)
缩略图}}“alt=”“>->这是我应该获取图像的地方
{{Carbon\Carbon::parse($blog->created_at)->格式('d-m-Y')}}/di
{{$blog->name}
{!!\illumb\Support\Str::words($blog->message,30,“…”)
@endforeach
尝试将此添加到控制器中
$blog = new Blog;
$blog->name = $request->name;
$blog->message = $request->message;
if($request->hasFile('thumbnail')) {
$file = Input::file('thumbnail');
//getting timestamp
$timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString());
$name = $timestamp. '-' .$file->getClientOriginalName();
$file->move(public_path().'/images/', $name);
$blog->thumbnail = url('/images/' . $name);
}
$blog->save();
return back();
比你认为的要好
@foreach ($blogs as $blog)
<div class="blog-item">
<div class="blog-thumb">
<img src="{{ $blog->thumbnail }}" alt=""> ->this is where i was supposed to fetch the image
</div>
<div class="blog-text text-box text-white">
<div class="top-meta">{{ Carbon\Carbon::parse($blog->created_at)->format('d-m-Y') }} / di <a href="">Rakitan</a></div>
<h3>{{ $blog->name }}</h3>
<p>{!! \Illuminate\Support\Str::words($blog->message, 30, '...') !!}</p>
<a href="{{ route('post.read', ['blog_id' => $blog->id]) }}" class="read-more">Lanjutkan Baca <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
</div>
</div>
@endforeach
@foreach($blogs作为$blog)
缩略图}}“alt=”“>->这是我应该获取图像的地方
{{Carbon\Carbon::parse($blog->created_at)->格式('d-m-Y')}}/di
{{$blog->name}
{!!\illumb\Support\Str::words($blog->message,30,“…”)
@endforeach
关于代码的问题,我认为在存储功能中,您没有正确保存代码。请参阅下面的我的代码,将缩略图的链接保存到db中
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Blog;
class BlogController extends Controller{
//some your function goes here
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$blog = new Blog;
$blog->name = $request->input('name');
$blog->message = $request->input('message');
$file = $request->file('your_thumbnail');
//make sure yo have image folder inside your public
$destination_path = 'image/';
$profileImage = date("Ymd").".".$file->getClientOriginalName();
$file->move($destination_path, $profileImage);
//save the link of thumbnail into myslq database
$blog->thumbnail = $destination_path . $profileImage;
$blog->save();
return redirect()->back();
}
}
关于代码的问题,我认为在存储功能中,您没有正确保存代码。请参阅下面的我的代码,将缩略图的链接保存到db中
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Blog;
class BlogController extends Controller{
//some your function goes here
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$blog = new Blog;
$blog->name = $request->input('name');
$blog->message = $request->input('message');
$file = $request->file('your_thumbnail');
//make sure yo have image folder inside your public
$destination_path = 'image/';
$profileImage = date("Ymd").".".$file->getClientOriginalName();
$file->move($destination_path, $profileImage);
//save the link of thumbnail into myslq database
$blog->thumbnail = $destination_path . $profileImage;
$blog->save();
return redirect()->back();
}
}
它显示了一个错误类“App\Http\Controllers\Input”找不到,我应该制作另一个控制器吗?在顶部添加这个应该可以工作``使用illumb\Support\Facades\Input;使用碳\碳```它显示了另一个错误,上面写着“ErrorException从空值创建默认对象”``刷新并再试一次哇哦,是的,成功了谢谢@sid heart你真的保存了我它显示了一个错误类“App\Http\Controllers\Input”找不到,我应该再做一个控制器吗?在上面加上这个应该可以``使用Illumb\Support\Facades\Input;使用碳\碳```它显示了另一个错误,上面写着“ErrorException从空值创建默认对象”``刷新并再试一次哇哦是的,成功了谢谢@sid heart你真的救了我