PHP脚本只上传html,css,js,jpg,png,ico,gif,zip,pdf和mp3

时间:2014-05-05 09:43:04

标签: php file-upload

现在我有兴趣从我的网站提供博客服务并对其进行测试。我想允许用户只上传html,css,js,jpg,png,ico,gif,zip,pdf和mp3文件,但我不想限制上传的大小。

现在我在localhost上测试我的网站,但我没有得到任何可靠的PHP脚本来上传文件,似乎PHP似乎不允许上传.ico图像,.mp3文件和一些加载的zip文件同样。

我不想让用户上传除指定内容之外的其他扩展程序,但是在制作zip之后必须能够上传的内容。 请帮帮我..

我非常感谢你。

1 个答案:

答案 0 :(得分:0)

你的插件必须加载script.php并返回一个json这里是一个例子:

// test if image or video
$img = strstr($_FILES["myfile"]["type"], "image");
$video = strstr($_FILES["myfile"]["type"], "video");

if($img) {
    $output_dir = "../images/";
}
elseif($video) {
    $output_dir = "../videos/";
}

if(isset($_FILES["myfile"]))
{
    $ret = array();
    $error = $_FILES["myfile"]["error"];

    if(!is_array($_FILES["myfile"]["name"])) {      // Only on file
        $fileName = $_FILES["myfile"]["name"];
        move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);
        $img_type = getImageSize("../images/".$_FILES["myfile"]["name"]);

        if(!$img_type) { // Si le contenu n'est pas une image
            unlink("../images/".$_FILES["myfile"]["name"]);
        }
        $ret[]= $fileName;
    }
    else {  // multiples files
      $fileCount = count($_FILES["myfile"]["name"]);

      for($i=0; $i < $fileCount; $i++) {
        $fileName = $_FILES["myfile"]["name"][$i];
        move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName);
        $ret[]= $fileName;
      }
    }
    var_dump($ret);
    echo json_encode($ret);
}