我正在尝试使用以下代码显示以前在WCF Web服务中编码的jpg:
<?php
require_once '../inc/config.php';
[...]
header("Content-type: image/jpg");
echo base64_decode($doc['BDATA']);
但我得到了一个
Can't display the image because it contains errors.
我已在此网络应用www.opinionatedgeek.com/dotnet/tools/base64decode/中解码了base64字符串,结果是正确的,但与我base64_decode
获得的结果不同,这是错误的。
编辑:我有两个使用相同代码的环境:测试和制作。它在Test中工作正常,但在Production中没有,所以我在思考一些配置问题。
我正在使用PHP 5.5.9
中的Microsoft IIS
。
base64_decode解码不好的字符串示例:
/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAABAAEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKKKAP/2Q==
有什么想法吗?
编辑2 :如果我评论此行
require_once '../inc/config.php';
并将代码从config.php复制到我的实际文件,它工作正常。可能会发生什么?
答案 0 :(得分:0)
php&lt; = 5.0.5的base64_decode($ string)将假设空格为 意思是+符号,其中php&gt; = 5.1.0的base64_decode($ string) 将不再做出这样的假设
要解决此问题,请尝试使用此代码
$encodedData = str_replace(' ','+',$encodedData);
$decocedData = base64_decode($encodedData);
因为这不是你的情况,所以你必须check this answer
因为每件事都适合我(WAMP)
编辑: 如下面的对话
有很多东西可能会损坏标题,例如,如果 你的文件编码是UTF-8然后你应该保存为UTF-8没有 你可以使用notepad ++来做到这一点,也确保你使用FTP 您的客户端没有任何字符到您的文件,而不是 每件事都应该可以正常工作
答案 1 :(得分:0)