无法在视图中读取图像文件
Image File Can Not Be Read In View
我正在使用 Laravel 8,我可以正确地将图像上传到 storage/app/public/images/
,但是当我这样做时图像无法以某种方式加载到视图中:
<img src="https://sitename.com/storage/app/public/images/{{ $product->image_path }}">
那么这里出了什么问题?
我该如何解决这个问题?
注意 我是 运行 这在生产服务器上,我无法访问 运行 的 Terminal/Command 行] Laravel 命令(没有 SSH 也是因为共享主机)。
试试下面的代码..
<img src="https://sitename.com/storage/images/{{ $product->image_path }}">
将此代码添加到您的 web.php 文件中。
Route::get("/storage", function (){
Artisan::call('storage:link');
});
然后访问https://yourwebsite.com/storage。您现在可以访问图像了。
It's upload photo. I think your image folder should be within public folder
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Lumen\Routing\Controller as BaseController;
class FileUploadController extends BaseController
{
public function uploadImage(Request $request)
{
$user = (object) ['image' => ""];
if ($request->hasFile('image')) {
$original_filename = $request->file('image')->getClientOriginalName();
$original_filename_arr = explode('.', $original_filename);
$file_ext = end($original_filename_arr);
$destination_path = './upload/image/';
$image = 'ME-' . time() . '.' . $file_ext;
if ($request->file('image')->move($destination_path, $image)) {
$user->image = '/upload/image/' . $image;
return $this->responseRequestSuccess($user);
} else {
return $this->responseRequestError('Cannot upload file');
}
} else {
return $this->responseRequestError('File not found');
}
}
protected function responseRequestSuccess($ret)
{
return response()->json(['status' => 'success', 'data' => $ret], 200)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
}
protected function responseRequestError($message = 'Bad request', $statusCode = 500)
{
return response()->json(['status' => 'error', 'error' => $message], $statusCode)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
}
}
After. {{APP_URL}}/upload/image/image.jpg It's working
我正在使用 Laravel 8,我可以正确地将图像上传到 storage/app/public/images/
,但是当我这样做时图像无法以某种方式加载到视图中:
<img src="https://sitename.com/storage/app/public/images/{{ $product->image_path }}">
那么这里出了什么问题?
我该如何解决这个问题?
注意 我是 运行 这在生产服务器上,我无法访问 运行 的 Terminal/Command 行] Laravel 命令(没有 SSH 也是因为共享主机)。
试试下面的代码..
<img src="https://sitename.com/storage/images/{{ $product->image_path }}">
将此代码添加到您的 web.php 文件中。
Route::get("/storage", function (){
Artisan::call('storage:link');
});
然后访问https://yourwebsite.com/storage。您现在可以访问图像了。
It's upload photo. I think your image folder should be within public folder
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Lumen\Routing\Controller as BaseController;
class FileUploadController extends BaseController
{
public function uploadImage(Request $request)
{
$user = (object) ['image' => ""];
if ($request->hasFile('image')) {
$original_filename = $request->file('image')->getClientOriginalName();
$original_filename_arr = explode('.', $original_filename);
$file_ext = end($original_filename_arr);
$destination_path = './upload/image/';
$image = 'ME-' . time() . '.' . $file_ext;
if ($request->file('image')->move($destination_path, $image)) {
$user->image = '/upload/image/' . $image;
return $this->responseRequestSuccess($user);
} else {
return $this->responseRequestError('Cannot upload file');
}
} else {
return $this->responseRequestError('File not found');
}
}
protected function responseRequestSuccess($ret)
{
return response()->json(['status' => 'success', 'data' => $ret], 200)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
}
protected function responseRequestError($message = 'Bad request', $statusCode = 500)
{
return response()->json(['status' => 'error', 'error' => $message], $statusCode)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
}
}
After. {{APP_URL}}/upload/image/image.jpg It's working