【问题标题】:Zip file download in **laravel 5.4 ** from public directory using Ajax使用 Ajax 从公共目录下载 **laravel 5.4 ** 中的 Zip 文件
【发布时间】:2019-01-10 11:49:53
【问题描述】:

在我的laravel 应用程序中,我的公共路径中有一个 zip 文件我想使用 ajax 下载它而不返回 zip 文件并抛出一个错误,如图所示,任何人都可以帮助解决这个问题,提前感谢。

$files = glob(public_path('uploads/download-images'));
            \Zipper::make(public_path('uploads/product_images.zip'))->add($files)->close();
            return response()->download(public_path('uploads/product_images.zip'));

这是ajax

var join_selected_values = allVals.join(",");
            $.ajax({
                url: $(this).data('url'),
                type: 'POST',
                data:'_token = <?php echo csrf_token() ?>',
                data: 'ids='+join_selected_values,
                success: function (data) 
                {
                    window.location = data;
                    alert('Seccussfully Downloaded');
                },
                error: function (data) {
                    alert(data.responseText);
                }
            });

【问题讨论】:

  • 这个问题和 CodeIgniter 或者 laravel 有关系吗?
  • 这个和laravel有关
  • 所以,不要使用有问题的 CI 标签。
  • @ShahidHussain 你过得怎么样?

标签: php ajax laravel-5.4


【解决方案1】:

我不确定,但这可能与您必须为响应设置 header configuration 有关。当然,您必须将内容类型更改为您想要的类型。希望对你有帮助。

{
    $headers = [
        'Access-Control-Allow-Origin' => '*',
        'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, PATCH, DELETE',
        'Access-Control-Allow-Headers' => 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Authorization , Access-Control-Request-Headers',
        'Content-Type' => 'application/pdf'
        ];
    return response()->download(filepathHere, nameHere, $headers);
}

还要确保:

管理文件下载的 Symfony HttpFoundation 要求正在下载的文件具有 ASCII 文件名。

【讨论】:

  • 不起作用,为什么 pdf 不是 zip 'Content-Type' => 'application/pdf'
  • 正如我在回答中所说:当然,您必须将内容类型更改为您想要的类型。
【解决方案2】:

据我了解,您无法使用 Ajax 调用返回下载响应。解决方法是,不要使用 ajax 请求来下载。只做一个传统的请求。因为它返回的是下载响应,所以浏览器会自动打开下载对话框,所以类似于不刷新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多