【发布时间】:2012-01-05 10:24:31
【问题描述】:
我有 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...等'; file_put_contents('MyFile.jpg', base64_decode($data2)); }
那怎么了?
【问题讨论】:
-
可能,完整的编码字符串没有被传输,您是否检查了 AJAX 发送并复制粘贴的字符串的长度?它们是一样的吗?
-
是的,我检查它的长度相同,我没有注意到任何差异。