我想创建一个超链接来下载我的storage / app / public文件夹中的文件。我在刀片中使用它
<a href="{{ asset('storage/app/public/1489082996.docx') }}" download="{{ asset('storage/app/public/1489082996.docx') }}"> Read Paper</a>
但这显示我找不到错误文件。我该怎么办 做 这是我的filesystem.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'visibility' => 'public',
],
答案 0 :(得分:2)
一种简单的方法,允许您将文件存储在存储文件夹中,并允许在没有系统更改的情况下下载:(在laravel 5.3中)
您可以建立文件的正常链接:
<a href="/download/1489082996.docx"> Read Paper</a>
然后你需要配置你的routes / web.php
Route::get('/download/{file}', function ($file='') {
return response()->download(storage_path('app/public/'.$file));
});
这应该打开所有类型文件的下载对话框,也适用于img和pdf&#39。如果要在线显示文件而不下载,则应使用文件方法:
return response()->file(storage_path('app/public/'.$file));
答案 1 :(得分:0)
资产路径相对于@Override
public Mono<Void> save(AccountDTO accountDTO) {
return Mono.create(voidMonoSink -> {
Account account = converter.map(accountDTO, Account.class);
ListenableFuture<Void> voidListenableFuture = mappingManager.mapper(Account.class).saveAsync(account);
Futures.addCallback(voidListenableFuture, new FutureCallback<Void>() {
@Override
public void onSuccess(Void result) {
voidMonoSink.success(result);
}
@Override
public void onFailure(Throwable t) {
log.error("Unable to save account " + accountDTO, t);
voidMonoSink.error(new MyCustomException());
}
});
});
}
目录。因此,您只需要/public
假设您已将syz链接到asset('1489082996.docx')
。