我有2个文件screen.js和test.php。 我在test.php中有这个简单的php代码:
<?php
if (isset($_POST['img'])) {
$img = $_POST['img'];
$comma = strpos($img, ',');
$data = substr($img, $comma+1);
file_put_contents('MyFile.jpg', base64_decode($data));
}
?>
我有两种情况:
当我通过包含jpg文件的ajax img变量发送时,从screen.js到test.php的字符串base64,脚本在服务器端保存文件,但我无法打开它。打开时出错! :(
当我调试screen.js时,我知道img变量包含什么。当我复制并粘贴img变量的内容并保存到test.php中时,每个都可以。
if(isset($ _ POST ['img'])){ $ data2 ='/ 9j / 4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMC...etc。'; file_put_contents('MyFile.jpg',base64_decode($ data2)); }
那有什么不对?
答案 0 :(得分:1)
Base64编码数据可能包含+符号。如果您将数据作为普通的URL编码参数发送,那么php会将+
解码为一个显然不是您想要的空间。