我想创建一个文件并在Laravel操作期间下载它。
我使用以下代码:
public function handle(ActionFields $fields, Collection $models)
{
Storage::disk('local')->put('file.txt', 'example');
$url = Storage::disk('local')->url('file.txt');
return Action::download($url, 'file.txt');
}
这会导致以下错误:
Failed - no file
我在这里做什么错了?
答案 0 :(得分:1)
不确定该错误消息来自何处,但是可能是以下问题。调用<div class="container" *ngFor="let group of groups">
<ng-container *ngTemplateOutlet="t1;context:{data:group}"></ng-container>
</div>
<ng-template #t1 let-data="data">
<div class="container" dragula="ITEMS" [(dragulaModel)]="data.items">
<!-- <font class="handle">x</font> -->
<span>
<font class="handle">x</font>
<ng-container *ngFor="let item of data.items">
<ng-container *ngIf="item.items">
<ng-container *ngTemplateOutlet="t1;context:{data:item}"></ng-container>
</ng-container>
<ng-container *ngIf="!item.items">
<ng-container *ngTemplateOutlet="t2;context:{data:item}"></ng-container>
</ng-container>
</ng-container>
</span>
</div>
</ng-template>
<ng-template #t2 let-data="data">
<span>
<font class="handle">x</font>
{{data.name}} - {{data.position}}
</span>
</ng-template>
laravel nova将指示浏览器以给定的URL下载文件。如here所述,该URL(取决于您的配置)可能是相对URL return Action::download($url, 'file.txt')
。因此,浏览器将尝试下载可能不存在的/storage/file.txt
。上面提到的文档为此提供了解决方案。
如果您甚至不想创建一个文件,如果数据敏感,则可能需要清理和保护文件,那么您也可以将url指向路由并在控制器中进行处理。