javascipt以及PHP实现图片下载功能(遇到的一些问题)

需求(点击这个按钮,可以将图片下载下来)

问题一:A链接download属性

百度首先搜到的是a链接的download属性。

<ahref="https://www.baidu.com/img/bd_logo1.png" download="百度logo">点我下载</a>

经过测试,这种方式只能是同源路径才可以使用,否则会直接打开。同源指的是一个域名下,如果使用其它域名则不可以。

问题二: 接着又想到了JS下载。搜到了以下代码

https://www.cnblogs.com/zhangkaiqiang/p/8183926.html(其中的Img方式,与我的方式一,一样,也只能是同源路径)

 

最后一点办法没有了。改用PHP解决。


1.      a链接到访问后台。

2.      PHP代码:

function sendFile($url)

    {
      if(!empty($url)){

        $content = file_get_contents($url);

        header("Content-type:application/octet-stream");

        header("Accept-Ranges:bytes");

        header("Accept-Length: " .strlen($content));

        header("Content-Disposition:attachment;filename=" . array_reverse(explode('/', $url))[0]);

        echo  $content;

        die;

结果又遇到了问题,前台接受到先是乱码,然后再次刷新才能下载图片。

 

请教了同事,因为我用的是laravel-admin,其中有pjax的封装。而ajax是不可以下载图片的。所以出现问题。

最终解决办法,给a了解加了一个属性   targe=”-_blank”

 

    




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值