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”

    




猜你喜欢

转载自blog.csdn.net/wuye_lh/article/details/80180601