通过PHP

时间:2015-08-07 11:40:38

标签: php

我正在使用以下代码尝试通过我的脚本传递图像,但所有发生的事情都是下载的html文件。

这是一个用于电子邮件跟踪的脚本,起初我正在更新数据库,然后我实际上继续传递图像,这是我遇到问题的地方。

下载的html文件包含以下文字GIF89a€ÿÿÿ!ÿXMP DataXMP ÿþýüûúùø÷öõôóòñðïîíìëêéèçæåäãâáàßÞÝÜÛÚÙØ×ÖÕÔÓÒÑÐÏÎÍÌËÊÉÈÇÆÅÄÃÂÁÀ¿¾½¼»º¹¸·¶µ´``³²±°¯®­¬«ª©¨§¦¥¤£¢¡ Ÿžœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwvutsrqponmlkjihgfedcba``_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! !ù,D;

这是我的PHP

$graphic_http = 'blank.gif';
$filesize = filesize( 'blank.gif' );

    header( 'Pragma: public' );
    header( 'Expires: 0' );
    header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
    header( 'Cache-Control: private',false );
    header( 'Content-Disposition: attachment; filename="image.gif"' );
    header( 'Content-Transfer-Encoding: binary' );
    header( 'Content-Length: '.$filesize );
    readfile( $graphic_http );

任何人都可以指出我做错了什么吗?

由于

2 个答案:

答案 0 :(得分:4)

您没有告诉浏览器文件类型是什么,因此它不会将其作为GIF图像处理,而是作为文本处理。

包括以下一行:

header ("Content-Type: image/gif");

//编辑
要阻止文件下载并在浏览器中打开,请删除以下行:
header( 'Content-Disposition: attachment; filename="image.gif"' );

这是告诉浏览器下载文件而不是简单地显示它的原因。

答案 1 :(得分:2)

您需要设置内容类型,如果是显示而非下载,则需要删除内容附件:

header( 'Pragma: public' );
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Cache-Control: private',false );
header('Content-Type: image/gif');
// header( 'Content-Disposition: attachment; filename="image.gif"' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Length: '.$filesize );
readfile( $graphic_http );