Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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
什么是;PK和xBF¿¿&引用;PHP中的响应方式_Php_Ios - Fatal编程技术网

什么是;PK和xBF¿¿&引用;PHP中的响应方式

什么是;PK和xBF¿¿&引用;PHP中的响应方式,php,ios,Php,Ios,您好,我正在使用PHP web服务上的函数readfile()将一个文件下载到iOS上的应用程序中,我想知道该文件是否正确下载,但我不知道如何才能做到这一点 因此,我正在尝试做一些回音,以了解文件是否已按如下方式下载: echo "before"; readfile($file); echo "after"; 但我得到的回应是: beforePK¿¿¿ 任何人都知道这意味着什么,或者我如何知道文件下载是否正确 更新: 是的,这是一个zip文件,这是我的标题 header("Cache-Con

您好,我正在使用PHP web服务上的函数readfile()将一个文件下载到iOS上的应用程序中,我想知道该文件是否正确下载,但我不知道如何才能做到这一点

因此,我正在尝试做一些回音,以了解文件是否已按如下方式下载:

echo "before";
readfile($file);
echo "after";
但我得到的回应是:

beforePK¿¿¿
任何人都知道这意味着什么,或者我如何知道文件下载是否正确

更新: 是的,这是一个zip文件,这是我的标题

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$ticket");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");

PHP应该在
readfile()
之前设置正确的头文件-这实际上是将文件读取到浏览器/应用程序。。。但是浏览器/应用程序需要知道如何处理它…

PHP应该在
readfile()
之前设置正确的头文件-这实际上是将文件读取到浏览器/应用程序。。。但是浏览器/应用程序需要知道如何处理它…

您正在尝试输出zip文件的内容,不是吗

readfile($file)
的工作原理与
echo file\u get\u contents($file)
相同。如果您试图向某人提供要下载的文件,请不要添加任何其他输出,否则可能会破坏该文件


我还建议大家阅读一下函数。这样,您就可以明确地告诉浏览器您正在发送一个文件,而不是一个包含类似文件内容的HTML页面。(参见涉及
内容类型的示例)

您正在尝试输出zip文件的内容,不是吗

readfile($file)
的工作原理与
echo file\u get\u contents($file)
相同。如果您试图向某人提供要下载的文件,请不要添加任何其他输出,否则可能会破坏该文件


我还建议大家阅读一下函数。这样,您就可以明确地告诉浏览器您正在发送一个文件,而不是一个包含类似文件内容的HTML页面。(请参见涉及
内容类型的示例)

通常,您只需假设一旦连接关闭,数据就完成了传输。如果要验证文件是否已完全传输,并且没有损坏,则需要使用XML或JSON之类的数据结构,该结构将:

  • 对数据字段进行分隔,如果省略了一个错误,则会导致XML/JSON解析器抛出一个错误,即传输在完成之前被切断
  • 允许您在响应中嵌入多个数据,例如文件的MD5散列,可以在客户端重新计算以验证数据是否完整
  • 例如:


    通常,您只需假设一旦连接关闭,数据就完成了传输。如果要验证文件是否已完全传输,并且没有损坏,则需要使用XML或JSON之类的数据结构,该结构将:

  • 对数据字段进行分隔,如果省略了一个错误,则会导致XML/JSON解析器抛出一个错误,即传输在完成之前被切断
  • 允许您在响应中嵌入多个数据,例如文件的MD5散列,可以在客户端重新计算以验证数据是否完整
  • 例如:


    输出文件时不要包含echo语句;为文件类型(本例中为zip文件?)设置适当的标题,并查看是否可以使用适当的软件在客户端上成功打开该文件
    readfile()
    不下载,它会输出文件内容。在您的例子中,这似乎是一个ZIP文件头和二进制负载;为文件类型(本例中为zip文件?)设置适当的标题,并查看是否可以使用适当的软件在客户端上成功打开该文件
    readfile()
    不下载,它会输出文件内容。在您的例子中,这似乎是一个ZIP文件头和二进制负载。
    $file = 'myfile.zip';
    
    $my_data = array(
      'file' => base64_encode(file_get_contents($file)),
      'hash' => md5_file($file)
    )
    
    //header calls
    header(...)
    
    echo json_encode($my_data);
    exit;