您可能知道Laravel使用Flysystem PHP包来提供文件系统抽象.我开始在我的项目中使用此功能,只是为了将一些图像上传到我的Amazon s3存储桶,我还将Cloudfront实例链接到此存储桶.我的问题是当我试图在我的html页面中显示这些图像时,我需要一个网址.
我找不到任何"干净"的方式去做,因为flysystem是通用库,我可以做到这样的事情:
Storage::disk('my_awesome_disk')->publicUrl("{$path}/{$image->name}")
Run Code Online (Sandbox Code Playgroud)
对于'公共'文件,它很容易确定文件是否为"公共",因为它包含在他们的api中,所以如果我使用s3 bucket作为我的磁盘驱动程序我应该得到:" https://s3.amazonaws. com/my_awesome_bucket/path/image.png "
或者:
Storage::disk('my_awesome_disk')->signedUrl("{$path}/{$image->name}", $timeout)
Run Code Online (Sandbox Code Playgroud)
对于'私人'文件 - 我应该得到一个暂时的网址,将在一段时间后过期.
这是我只能通过具体实施才能实现的吗?例如,如果我使用亚马逊S3我可以轻松运行:
$signed_url = $s3Client->getObjectUrl($bucket_name,
$resource_key,
"+{$expires} minutes");
Run Code Online (Sandbox Code Playgroud)
但我不想做丑陋的"切换案例"来确定我使用的驱动程序.我如何通过FileSystem接口从cdn(如cloudfront)获取URL?有什么建议吗?
我试图通过使用 Angular 2 的传统“#”字符引用它们来在视图中动态选择模板。在我的项目中,我处理错误并将它们显示给用户,我有一个对话框组件,它的内容应该基于动态 html注入,这就是为什么我使用模板。
我阅读了一些文章,这些文章展示了一种方法,当我已经知道模板引用的名称时,我不知道引用的名称,我在运行时得到了名称。我特别遵循了本指南:https : //www.bennadel.com/blog/3101-experimenting-with-dynamic-template-rendering-in-angular-2-rc-1.htm
所以目前我的对话框组件具有以下视图:
<template #err_1 let-property1="p1" let-property2="p2">
property1: {{p1}}
property2: {{p2}}
</template>
<template #err_2 let-property1="p1" let-property2="p2">
<p *ngIf="p1">{{p1}}</p>
property2: {{p2}}
</template>
<!--The code for the template directive i took from the guide in the link above-->
<tem [render]="templateRef"
[context]="context">
</tem>
Run Code Online (Sandbox Code Playgroud)
在我的 dialog.ts 我有以下代码:
@Component({
selector: 'error-dialog',
queries: {
templateRef: new ViewChild("err_1")
},
templateUrl: './dialog.html'
})
...
Run Code Online (Sandbox Code Playgroud)
“TemplateRendererDirective”指令源是我从上面链接中的指南中获取的。注意是什么让我感到困惑:templateRef 基本上得到一个对象:“ViewChild”,即使指令最终得到 TemplateRef 实例,这怎么可能?
所以只有当我知道我想要呈现哪个错误模板时,例如:“err_1”我只是在 dialog.ts 中预先引用它,但事实并非如此,我想动态地告诉我想要呈现“err_1”、“err_2”等.. 并给出上下文(这是用数据填充该模板的对象 - 例如 p1、p2,也是动态的)
有可能做到吗?
我正在使用Laravel框架.我有一种向数据库添加新项目的形式,用户也可以拖放文件.然后,显示进度条直到完成,使用Ajax将文件上载到服务器.
提交该表单后,我addItem在控制器中运行该函数,我想做/检查:
您能否就如何完成这些任务提出任何建议?