如何在php mysql中创建文件上传



我试图在php + mysql中创建winrar上传文件。我成功地创建了图像上传区,但这对我来说很难创建winrar上传和下载。

来自freedompeace的回答:

.rar    application/x-rar-compressed, application/octet-stream
.zip    application/zip, application/octet-stream

我也会检查一下文件名。下面是检查文件是RAR文件还是ZIP文件的方法。我通过创建一个快速命令行应用程序来测试它。

<?php
if (isRarOrZip($argv[1])) {
   echo 'It is probably a RAR or ZIP file.';
} else {
   echo 'It is probably not a RAR or ZIP file.';
}
function isRarOrZip($file) {
// get the first 7 bytes
$bytes = file_get_contents($file, FALSE, NULL, 0, 7);
$ext = strtolower(substr($file, - 4));
// RAR magic number: Rar!x1Ax07x00
// http://en.wikipedia.org/wiki/RAR
if ($ext == '.rar' and bin2hex($bytes) == '526172211a0700') {
    return TRUE;
}
// ZIP magic number: none, though PK0304, PK0506 (empty archive), 
// or PK0708 (spanned archive) are common.
// http://en.wikipedia.org/wiki/ZIP_(file_format)
if ($ext == '.zip' and substr($bytes, 0, 2) == 'PK') {
    return TRUE;
}
 return FALSE;
}
?>

请注意,它仍然不是100%确定,但它可能已经足够好了。

$ rar.exe l somefile.zip
somefile.zip is not RAR archive

但是即使WinRAR也会将非RAR文件检测为SFX存档:

$ rar.exe l somefile.srr
SFX Volume somefile.srr

相关内容

  • 没有找到相关文章

最新更新