0

我有一个关于使用 PHP 为我的大学创建文件上传网站的项目。对于每个上传的文件,网站必须检查上传的文件是否损坏。我一直在寻找,一无所获。

4

1 回答 1

3

用于检查 PDF 文件是否损坏

读取 PDF 文件的前五个字节。如果读取的字符串是%PDF-,则文件未损坏,否则已损坏。

这是工作代码:

<?php
$fp = fopen('mypdffile.pdf', 'r');

// move to the 0th byte
fseek($fp, 0);
$data = fread($fp, 5);   // read 5 bytes from byte 0
if(strcmp($data,"%PDF-")==0)
{
  echo "The PDF File is not Corrupted.";
}
else
{
  echo "The PDF File is  Corrupted.";
} 
fclose($fp);
?>

解释: 使用 notepad++ 打开任何未损坏的文件,您会注意到打开文件的前五个字节等于后面的子字符串“%PDF-”。这只是有效 PDF 文件的标题格式,我们可以利用它来测试文件是否损坏。

在此处输入图像描述

用于检查 .docx 文件是否损坏

DOCX 文件为 ZIP 格式,其中前两个字节是字母 PK(以 ZIP 的创建者 Phil Katz 命名)。

在此处输入代码

所以修改上面的代码:

 fseek($fp, 0);
$data = fread($fp, 2);   // read 2 bytes from byte 0
if(strcmp($data,"PK")==0)
{
  echo "The docx File is not Corrupted.";
}
else
{
  echo "The docx File is  Corrupted.";
} 
于 2013-05-14T17:49:22.047 回答