laravel - 如何从存储中访问图像
问题描述
我有一个文件保存在 storage/app/uploads 中,我想保存这张图片并用 img src 标签显示。
但我不能
我在尝试:
public function getSlider(Request $request)
{
$slider = Slider::find( $request->input('id') );
$slider->imagem = storage_path('storage/app/uploads/'.$slider->imagem);
return response()->json( $slider );
}
我正在尝试用 jquery 和 javascript 显示
function getSliders() {
$.ajaxSetup({
headers: {'X-CSRF-TOKEN' : $('#token').val() }
})
$.ajax({
url: "{{ route('site.getSlider') }}",
type: "post",
dataType: "json",
data: {
id: $('#id').val()
}
}).done( r => {
console.log('r',r)
$('#description').val( r.description )
setImage( r.image )
})
}
并设置图像
function setImage( image ){
var newImage = document.createElement('img');
newImage.setAttribute('src', image);
newImage.width = 500;
newImage.heigth = 200;
document.getElementById("photo").innerHTML = newImage.outerHTML;
}
当我想从 public/img 访问图像时,我使用
<img src="{{ URL('img/myImage.png') }}">
但我想从 storage/app/uploads 访问
解决方案
这将返回文件路径(无 url)(如果您看到它显示 /var/www.... 等的日志)
storage_path('storage/app/uploads/'.$slider->imagem);
您应该使用资产助手来创建图像的 URL
asset( 'storage/app/uploads/'.$slider->imagem);
在此之前,您需要运行此命令以从公用文件夹创建指向存储文件夹的符号链接。
php artisan storage:link
请试试这个,让我知道它是如何工作的:)
推荐阅读
- yaml-cpp - yaml-cpp 总是创建一个大小为 0 的标量节点
- git - 使用合并提交发布到远程主机
- sql - 只需要为每个故事和国家找到最高级别的用户
- reactjs - React Typescript: Type 'X' is not assignable to type 'IntrinsicAttributes & { properties }. TS2322
- c# - How to access DataTemplate in resource dictionary in library project
- javascript - How to download file with certain name, set in .NET Core controller method, using Vue.js?
- amazon-s3 - Using AWS SDK (JS) for s3.selectObjectContent gives error on 'on' keyword
- javascript - Anime.js anime.stagger is not a function
- javascript - Get input text value, after selected an option (all from a json file), ANGULAR 10
- spring-boot - 处理来自弹簧休息控制器的多部分响应