如何使用 php laravel 显示上传的图片

Posted

技术标签:

【中文标题】如何使用 php laravel 显示上传的图片【英文标题】:How to display uploaded image with php laravel 【发布时间】:2017-11-17 10:53:52 【问题描述】:

如何显示从存储位置上传的图像,我想将相同的图像名称结转到

<input id = "Picture" type="file" name="Picture" accept="image/*" />

此代码在Controller.php上传时使用

$img = $input['Picture'];
$name = $img->getClientOriginalName();
$uploaded = $img->move('public/img', $name);

这是上传的图片将在我的new.blade.php 中显示的位置

<img src="#" id="Image" name="Image" />

并且图像名称没有将原始名称保存到mysql,它保存为C:xampp mpphpB7CF.tmp

如何保存我上传的原始名称。

【问题讨论】:

【参考方案1】:

检查下面的代码,这是工作代码。

$file = $request->file('Picture');
$destinationPath = 'public/img/';
$originalFile = $file->getClientOriginalName();
$file->move($destinationPath, $originalFile);

$originalFile = $file-&gt;getClientOriginalName(); 这一行会将原始文件名分配给$originalFile,并在您将图像插入数据库的位置使用此变量名。

添加以下行以显示您上传的图像。

&lt;img src=' asset('img/'.$originalFile) '&gt;

【讨论】:

对不起!!保存的名称仍然不是原始名称。我使用了 phpMyAdmin 这是我的工作代码,请检查; ` $file = $request->file('图片'); $destinationPath = 'public/img/'; $originalFile = $file->getClientOriginalName(); $file->move($destinationPath, $originalFile); $productImage = \App\ProductImage::find(4); $productImage->product_image = $originalFile; $productImage->update();` 上传到公用文件夹的图片如何上传?【参考方案2】:
$path = '';

if ($request->hasFile('Picture')) 
    $file = $request->file('Picture');
    $path = $file->storeAs(public_path('img'), $imageName);

    //or
    if (file_put_contents(public_path(img) . $imageName, $file)) 
        $path = public_path(img) . $imageName;
    


return view('your-view', ['img_path' => $path]);;

在你的new.blade.php

<img src=" $img_path " id="Image" name="Image" />

【讨论】:

【参考方案3】:

在控制器中

public function show($name)

    $extension = File::extension($name);
        $path = public_path('storage/' . $name);
        if (!File::exists($path)) abort(404);
        $file = File::get($path);
        $type = File::mimeType($path);
        $response = Response::make($file, 200);
        $response->header("Content-Type", $type);
        return $response;

路线

Route::get('/images/name', 'FileController@show');

Index.blade.php

<a href=' asset("images/$hire_details->file") '>click here to view image</a>

【讨论】:

【参考方案4】:

从控制器返回路径并显示:

<img src=' asset('img/'.$name) '>

【讨论】:

【参考方案5】:

返回你从控制器上传的$以查看

return view('new',['uploaded'=>$uploaded]);

然后在你的视野中

<img src=' asset($uploaded) ' >

【讨论】:

谢谢!!但是我的 new.blade 中有一个 标签。我想在里面显示。 从控制器返回视图,然后在其中显示【参考方案6】:

我想你可以试试这个:

use Input;
use Image;

$file = Input::file('Picture');
$imageName = $file->getClientOriginalName();

$imgUpload = Image::make($file)->save(public_path('img/' . $imageName));

<img src=" asset('img/'.$imageName) ">

注意:如果您遇到Image 的错误,请从此link 安装Image 的软件包

【讨论】:

以上是关于如何使用 php laravel 显示上传的图片的主要内容,如果未能解决你的问题,请参考以下文章

laravel5.6上传图片及显示

laravel 文件管理器不显示上传的图片

如何在 laravel 上上传文件并将其存储在目录中

Laravel 5.4 显示上传的图片问题

Laravel 8 UniSharp File Manager 3 - 图片已上传但未显示

在Laravel注册中上传图片