[英]Cannot output image in Laravel5.2 view
i'm trying to output an image inside a DIV like: 我正在尝试在DIV中输出图像,例如:
<div style="background-image:url('{{ asset($radioProg->image)}}');
Even if the img seems to be uploaded correctly in my uploads folder and i can see it on my DB, i still can not see it in my view! 即使img似乎已正确上传到我的上载文件夹中,并且可以在数据库中看到它,但在我看来仍然看不到它! any help? 有什么帮助吗?
This is my RadioController.php 这是我的RadioController.php
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required',
'day' => 'required',
'time' => 'required',
'intro' => 'required',
'link_streaming' => 'required',
'image' => 'required|image|max:2000'
]);
$radioProg = new RadioProg;
$radioProg->name = $request->name;
$radioProg->day = $request->day;
$radioProg->time = $request->time;
$radioProg->intro = $request->intro;
$radioProg->link_streaming = $request->link_streaming;
if ($request->hasFile('image')) {
if ($request->file('image')->isValid()) {
$img_name = $request->file('image')->getClientOriginalName();
$temp_file = base_path() . 'uploads/radio_programs' . $img_name;
$radioProg->image = $request->file('image')->move('uploads/radio_programs', $img_name);
}
}
$radioProg->save();
Session::flash('success', 'Tu nuevo programa de radio ha sido guardado correctamente!');
return redirect()->route('admin.radio.index', [$radioProg->id]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$radioProg = RadioProg::find($id);
return view('radio.show')->with('radioProg', $radioProg);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$radioProg = RadioProg::find($id);
return view('radio.edit')->with('radioProg', $radioProg);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$radioProg = RadioProg::find($id);
$this->validate($request, [
'name' => 'required',
'day' => 'required',
'time' => 'required',
'intro' => 'required',
'link_streaming' => 'required',
'image' => 'required|image|max:2000'
]);
$radioProg->name = $request->input('name');
$radioProg->day = $request->input('day');
$radioProg->time = $request->input('time');
$radioProg->intro = $request->input('intro');
$radioProg->link_streaming = $request->input('link_streaming');
if ($request->hasFile('image')) {
if ($request->file('image')->isValid()) {
$img_name = $request->file('image')->getClientOriginalName();
$temp_file = base_path() . 'uploads/radio_programs' . $img_name;
$radioProg->image = $request->file('image')->move('uploads/radio_programs', $img_name);
}
}
$radioProg->save();
Session::flash('success', 'Tu programa de radio ha sido modificado con éxito!');
return redirect()->route('admin.radio.index', [$radioProg->id]);
}
And this is my view: 这是我的观点:
<div class="row radio-programs">
@foreach($radioProgs as $radioProg)
<div class="col-md-4 {{ count($radioProgs) === 1 ? "col-md-offset-4" :""}} col-program">
<div class="panel panel-default panel-program" style="background-image:url('{{ asset($radioProg->image)}}'); background-position: center; background-size: cover;-webkit-background-size: cover; -moz-background-size: cover;-o-background-size: cover;">
<div class="panel-body">
<div class="row">
<div class="col-md-12 col-inOverlay">
<h3 class="text-center"><span>{{$radioProg->name}}</span></h3>
<h4><span>Día: todos los {{$radioProg->day}} </span></h4>
<h4><span>Hora: {{$radioProg->time}} </span></h4>
<hr>
<div class="row button-program">
<div class="col-md-10 col-md-offset-1 col-button-program">
<a href="{{url('radioProgram')}}" type="button" class="btn btn-danger btn-block">Entrar</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
in Chrome i actually see the correct path! 在Chrome浏览器中,我实际上看到了正确的路径!
<div class="panel panel-default panel-program" style="background-image:url('http://localhost:8000/uploads/radio_programs\administrador_consorcio_300115.png'); background-position: center; background-size: cover;-webkit-background-size: cover; -moz-background-size: cover;-o-background-size: cover;">
Not so much to answer your question, but more to debug... 回答您的问题不是很多,但是要调试的更多...
You said: 你说:
in Chrome i actually see the correct path! 在Chrome浏览器中,我实际上看到了正确的路径!
Have you tried inspecting the element in chrome that uses the background-image
style rule and seeing what image it returns? 您是否尝试过检查chrome中使用background-image
样式规则的元素,并查看返回的图像? You can even open up the image in a new tab. 您甚至可以在新选项卡中打开图像。 See image: 见图片:
I think it's likely the path is incorrect if you still can't see it. 我认为如果您仍然看不到该路径,则可能是错误的。
这样的更改可能起作用:在( {{ )之前添加(../ )
<div class="panel panel-default panel-program" style="background-image:url('../{{ asset($radioProg->image)}}'); background-position: center; background-size: cover;-webkit-background-size: cover; -moz-background-size: cover;-o-background-size: cover;">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.