gpt4 book ai didi

php - Laravel:访问公共(public)文件夹中的图像

转载 作者:行者123 更新时间:2023-12-04 17:55:49 26 4
gpt4 key购买 nike

嗨,我完全被 Laravel 文件系统吓坏了,我在网上搜索了三天,但我无法找到从“storage/app/public”文件夹中显示图像或将图像存储在另一个文件夹中的方法“storage/app/public”之外的文件夹。我在带有 Laravel 5.3 的 Windows 上使用 Homestead。这是上传图像并将路径保存到数据库中的“存储 Controller ”。

    class ClassName extends Controller
{
public function store(Request $request)
{
$today = Carbon::today(); //Today
$year = $today->year; // year int(2016)
$month = $today->month; // month int(11)
$day = $today->day; // day int(5)

//make year/month/day directory if not available then upload images to these directories sent from the form
$path = $request->file('ProductImage')->store(public_path().'/'.$year.'/'.$month.'/'.$day);
if ($request->file('ProductImageOne')) {
$pathone = $request->file('ProductImageOne')->store('public'.'/'.$year.'/'.$month.'/'.$day);
}
else{
$pathone = NULL;
}

if ($request->file('ProductImageTwo')) {
$pathtwo = $request->file('ProductImageTwo')->store('public'.'/'.$year.'/'.$month.'/'.$day);
}
else{
$pathtwo = NULL;
}


//store data's sent by the form
$product = new Product;
$product->ProductImage = $path;
$product->ProductImageOne = $pathone;
$product->ProductImageTwo = $pathtwo;
$product->save();

Session::flash('flash_message', 'Your Image is uploaded.');
return redirect('/products/create');
}
}

到目前为止我没有任何问题,图片已上传到:

\storage\app\public\2016\11\8\image-name.png

但是当我试图在 View 文件中显示图像时,它不会显示。这是我的 Controller 方法,用于发送 View 路径:

public function edit($id)
{
//Get product from $id to edit
$product = Product::findOrFail($id);

//send the data above and load the edit product view (edit form)
return view('pages.edit_product')->with('product', $product);
}

这是我要显示图像的 View 代码:

<img src="{{ asset($product->ProductImage) }}" width="45">

返回这个:

<img src="http://laravel.dev:8000/public/2016/11/6/0b7e4e3dbf6907fa1b858fa5cd0bf3ce.jpeg" width="45">

http://laravel.dev:8000/public/2016/11/6/0b7e4e3dbf6907fa1b858fa5cd0bf3ce.jpeg

当我想直接转到图片链接时,它说:

Sorry, the page you are looking for could not be found.

1/1 NotFoundHttpException in RouteCollection.php line 161:

而且我什至通过“php artisan storage:link”做了“符号链接(symbolic link)”,我对此略有了解。它在公用文件夹中创建一个空白的“.storage”文件。那是我使用 Laravel 的第一个项目,我真的很喜欢它,直到我遇到这个上传图片并将其展示给观众的问题,现在我很失望。请帮忙

最佳答案

您需要从图像 url 中删除 public 以便您拥有以下内容:

"http://laravel.dev:8000/2016/11/6/0b7e4e3dbf6907fa1b858fa5cd0bf3ce.jpeg"

因此将 store('public'.'/'.$year.'/'.$month.'/'.$day); 更改为 store($year.'/'.$month.'/'.$day);

关于php - Laravel:访问公共(public)文件夹中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40513875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com