我只需要允许10MB最大上传和.gif .png .jpg,我该怎么办? 它用于上传图像,创建新目录并上传图像,但我需要10 MB的限制,当然,只有这种格式。
<?php
$dirname = uniqid();
mkdir("uploads/$dirname", 0777);
$myfile = fopen("uploads/$dirname/index.php", "w") or die("");
$txt = "<?php
header('Location: /publictools');
?>";
fwrite($myfile, $txt);
$txt = "<?php
header('Location: /publictools');
?>";
fwrite($myfile, $txt);
fclose($myfile);
$target_path = "uploads/$dirname/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
echo "<div align='center'><span style='color:green;'>Listo, Encontraras tu archivo en: http://********/uploads/$dirname/". basename( $_FILES['uploadedfile']['name'], $target_path). "</span></div><br>";
}else{
echo "<div align='center'>Ha ocurrido un error!</div>";
}
?>
答案 0 :(得分:1)
对于filesize,只需检查上传文件的size
:
if ($_FILES["uploadedfile"]["size"] > 10485760) {
echo "Sorry, your file is too large.";
}
此处的大小以字节指定,因此10兆字节为10485760
。
对于文件格式,您必须检查上传文件的name
,然后使用 pathinfo()
和PATHINFO_EXTENSION
检查扩展程序:
$target_file = basename($_FILES["uploadedfile"]["name"]);
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
}
上面明确只允许PNG
,GIF
和JPG
(或JPEG
)文件,但您可以使用数组存储所需的文件类型你想要的。
希望这有帮助! :)