cl.loei.pw index.php,php 点击按钮自动下载,IE下有问题,求解答!

本文介绍了一个使用PHP处理Base64编码的图片上传和下载的问题。在Chrome和Firefox中正常工作,但在IE浏览器下存在bug。代码包括Base64编码的URL转换、图片解码并保存到服务器,以及生成下载链接。
摘要由CSDN通过智能技术生成

直接看代码!

test.php

点击下载

var str = "data:image/png;base64,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";function $urlEncode(str){//直接post,浏览器会把+号转了的,这里有坑

if(str && str.length){return escape(str).replace(/\+/g, ‘%2B‘).replace(/\"/g,‘%22‘).replace(/\‘/g, ‘%27‘).replace(/\//g,‘%2F‘);

}

return"";

}

document.getElementById(‘btn‘).onclick = function(){

document.getElementById(‘btn‘).setAttribute(‘href‘,‘test.php?file=‘+$urlEncode(str));

}

index.php

if($base64_url){define(‘WWWROOT‘, dirname(__FILE__).‘\\‘);$base64_url = preg_replace(‘/\s/‘, ‘+‘, $base64_url);//空格变+号

$base64_body = substr(strstr($base64_url,‘,‘),1);$rand = rand(100, 999);$pics = date("YmdHis") . $rand . $type; //命名图片名称

$filename = ‘./‘.$pics.‘.jpg‘;$name = $pics.‘.jpg‘;$img = base64_decode($base64_body);//解码

$a = file_put_contents($filename, $img);//图片字节

$path = WWWROOT.$name;//完整的文件保存路径

$src = ‘http://127.0.0.1/download/‘.$name;//完整的图片url路径

header("Cache-Control: no-cache");header("Pragma: no-cache");header("Expires: 0");header(‘Cache-Control: public, must-revalidate, max-age=0‘);header(‘Accept-Ranges: bytes‘);header("Content-Type: application/force-download");header("Content-Type: application/download");header("Content-Transfer-Encoding: binary");header("Content-type: application/octet-stream");header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0‘); //不加的话,IE中会提示目标主机无法访问

header(‘Pragma: public‘); //不加的话,IE中会提示目标主机无法访问

header("Content-Length: ".filesize($path));header("Content-Disposition: attachment; filename=$name");$fp = fopen($src, ‘rb‘);fpassthru($fp);fclose($fp);if(file_exists($path)){//然后把图片删除掉

unlink($path);exit;

}

}?>

亲测,chrome 和 火狐都没问题。但是在IE下有bug,求大牛指点!

原文:http://www.cnblogs.com/violinxliu/p/4260483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值