【问题标题】:Laravel & inertia.js file downloadLaravel 和惯性.js 文件下载
【发布时间】:2021-04-10 00:05:10
【问题描述】:

我将文件上传到数据库并使用“php artisan storage:link”创建了存储链接,一切正常,但是当我想下载文件时,我遇到了这个错误

这是我的代码

路线

Route::get('/download/{id}', [\App\Http\Controllers\SubjectController::class, 'downloadFile'])->name('subject.download');

Vue.js

<inertia-link :href="'/download/'+slide.id" class="rounded-lg bg-gray-200 px-4 py-1">
      <Icon name="download"></Icon>
</inertia-link>

控制器

    public function downloadFile($id) {
        $file = Upload::find($id);
        $subjectCode = $file->subject()->get()->map->only('name','code')->first()['code'];
        $subjectName = $file->subject()->get()->map->only('name','code')->first()['name'];
        return response()->download(storage_path('app/public/documents/'.Str::upper($subjectCode.'_'.$subjectName).'/'.$file->file), 'public');
    }

【问题讨论】:

    标签: laravel vue.js inertiajs


    【解决方案1】:

    替换

    <inertia-link :href="'/download/'+slide.id" class="rounded-lg bg-gray-200 px-4 py-1">
                                        <Icon name="download"></Icon>
                                    </inertia-link>
    

    <a :href="'/download/' + slide.id" class="rounded-lg bg-gray-200 px-4 py-1">
        <Icon name="download"></Icon>
    </a>
    

    那么它不会被inertia处理,它会让你下载文件

    【讨论】:

    • 感谢您的回复此方法有效,但我需要知道为什么不使用惯性.js 这个错误与惯性.js 有关吗?
    • inertia 链接充当 ajax 调用来获取像 pjax 一样的下一页所以下载在这里不起作用它尝试获取下一页它是不同的然后 &lt;a&gt; 标签
    猜你喜欢
    • 2021-01-23
    • 2021-11-25
    • 2022-11-04
    • 2021-06-02
    • 2021-08-18
    • 2022-10-20
    • 2022-01-18
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多