验证上传表单的最佳方法是什么?

时间:2010-10-19 09:09:08

标签: php

哪种方法可以验证上传表单?

目前使用mime类型,但这不太合适 - 即使我在mime类型中寻找video,也无法上传mpegs。

谢谢

汤姆

3 个答案:

答案 0 :(得分:1)

这似乎有效:

switch (strtolower($_FILES["file"]["type"])){
        case "application/msword":
        case "application/pdf":
        case "application/vnd.ms-excel":
        case "application/vnd.ms-powerpoint":
        case "application/zip":
        case "image/gif":
        case "image/jpeg":
        case "image/png":
        case "image/tiff":
        case "text/plain":
        case "video/mpeg":
        case "video/x-mpeg2":
        case "video/msvideo":
        case "video/quicktime":
            // do it
            break;
        default:
            // don't do it
            break;
    }

对于其他任何人,这可能有助于查看http://www.sfsu.edu/training/mimetype.htm以添加您可能需要检查的其他mime类型。

答案 1 :(得分:0)

我想您要检查上传的文件是否是有效的视频文件。因此,您可以检查的一件事是文件扩展名(IE“.mpg”用于mpeg视频)。因为我所知道的webframework没有内部视频验证,所以你必须依靠一些外部程序/库来检查视频文件是否真的是一个视频文件。也许FFMPEG能够做到这一点。

答案 2 :(得分:0)

尝试这样的事情:

$mime = strtolower($_FILES["file"]["type"]);
$parts = explode("/",$mime);

switch($parts[0])
{
    case 'video':
        //Video file, use $parts[1] to check the video subtype
    break;
    case 'image':
    break;
}