【问题标题】:Laravel having trouble displaying uploaded imagesLaravel 无法显示上传的图片
【发布时间】:2014-07-25 21:00:19
【问题描述】:

我正在尝试为图像创建一个简单的文件上传系统,即使经过数小时的谷歌搜索,我似乎也无法让它工作。用户将图片上传到我的网站,我将图片的路径存储在数据库中,然后通过将数据库路径设置为 img 标签的 src 来显示图片。看起来很简单,但它仍然对我不起作用。无论如何,这是我的代码。

//posting upload in controller
//i named images docs

public function postUpload(){

    Input::file('file')->move(base_path() . '/public/uploads');

    $doc = new Doc();
    $doc->title = Input::get('title');
    $doc->caption = Input::get('caption');
    $doc->path = base_path() . '/public/uploads' . Input::file('file')->getClientOriginalName();

    $doc->save();

}

这是显示上传图片的索引视图:

@extends('layouts.caselistlayout');

@section('content')


@foreach($docs as $doc)
<h1>{{ $doc->title }}</h1>
<h2>{{ $doc->caption}}</h2>
<img src='{{ $doc->path }}'>

@endforeach

@stop

我可以为我的上传视图提供代码,但我认为在这种情况下不需要它。

感谢您的帮助!

编辑:忘了提到确切的问题是图像没有显示。标题和说明显示在索引页上,但不显示图像。我只看到图像应该在哪里的默认 HTML 占位符。

编辑2:文件结束在文件夹中,我可以在数据库的路径列中看到URL。

【问题讨论】:

  • 是否有错误或文件甚至最终在文件夹中?
  • 我可以查看和查看 public/uploads 文件夹中的文件。我进行了编辑,因为我忘了提及确切的问题是什么。
  • 我明白了,你能看到记录中的 URL 吗?
  • 是的,路径上传到表的路径列。
  • 然后改变你的问题,因为“文件确实正在上传”。

标签: php laravel laravel-4 blade


【解决方案1】:

您正在保存导致问题的数据库的完整物理路径。你实际上需要一个http 地址。示例:

http://example.com/uploads/img1.jpg

删除以下行:

$doc->path = base_path() 。 '/公共/上传' 。输入::file('file')->getClientOriginalName();

改为保存以下内容:

$doc->path = '上传/' 。输入::file('file')->getClientOriginalName();

在你看来:

&lt;img src='{{ asset($doc-&gt;path) }}'&gt;

【讨论】:

  • 感谢您的回答,但它仍然不适合我。我进行了更改,但图像仍未显示。图片以'uploads/image.png'的路径上传到数据库。另外,image.png存在于public/uploads文件夹中。 img 标签根本不显示图片。
猜你喜欢
  • 2020-12-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 2020-10-02
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多