Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在另一个应用程序中编码到base64并解码后,文件被破坏_Javascript_Php_Pdf_Encoding_Base64 - Fatal编程技术网

Javascript 在另一个应用程序中编码到base64并解码后,文件被破坏

Javascript 在另一个应用程序中编码到base64并解码后,文件被破坏,javascript,php,pdf,encoding,base64,Javascript,Php,Pdf,Encoding,Base64,正在使用jsPDF在客户端生成一个PDF文件,使用btoa()在base64中编码,发送到一个PHP API,在那里它被解码并保存为二进制文件,但它不起作用,我得到了一个格式错误的PDF PHP代码: $destination = 'test/file.pdf'; $content = base64_decode($content); $uploaded = file_put_contents($destination, $content); 如果我比较这两个文件(直接从前端下载的pdf文件和

正在使用
jsPDF
在客户端生成一个PDF文件,使用
btoa()
在base64中编码,发送到一个PHP API,在那里它被解码并保存为二进制文件,但它不起作用,我得到了一个格式错误的PDF

PHP代码:

$destination = 'test/file.pdf';
$content = base64_decode($content);
$uploaded = file_put_contents($destination, $content);
如果我比较这两个文件(直接从前端下载的pdf文件和从服务器下载的pdf文件),我得到的结果如下:

原始PDF文件片段(我不能透露完整文件):

后编码/解码一个:


是什么导致了这种差异?似乎是编码问题?

我无法评论,因为我需要50个代表:)留下答案


确保您正确地完成了POST请求。尝试将另一个文件(例如图像文件)发布到服务器,而不是您的PDF文件,并尝试在服务器上打开发布的图像文件。

似乎
btoa
无法很好地处理16位字符,这是怎么回事?请参阅:您是否解决过此问题?也遇到了这个…事实上,我正在发布base64编码字符串。我从两个方面比较了字符串,结果完全相同。如果您在客户端对pdf进行编码和解码,而不将数据发送到服务器。你会得到正确的pdf文件吗?是的,我会。使用
atob()
还原
btoa()
非常有效。所以,问题是从PHP解码它会得到不同的结果。(好主意)请检查一下。我认为已经描述了如何克服您的问题。另外,我将在客户端对pdf进行编码,并在服务器上对相同的pdf进行编码。并比较编码数据,