Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何允许只上传最大10MB的.gif jpg和png_Php - Fatal编程技术网

Php 我如何允许只上传最大10MB的.gif jpg和png

Php 我如何允许只上传最大10MB的.gif jpg和png,php,Php,我需要只允许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: /pu

我需要只允许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>";
} 
?>

对于文件大小,只需对照上载文件的
大小进行检查:

if ($_FILES["uploadedfile"]["size"] > 10485760) {
    echo "Sorry, your file is too large.";
}
此处的大小以字节指定,因此10兆字节将是
10485760

对于文件格式,您必须对照上载文件的
名称
,然后使用
pathinfou扩展名
检查扩展名:

$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
)文件,但如果需要,可以使用数组存储所需的文件类型


希望这有帮助!:)

它50/50工作,它表示消息不是要使用的扩展名,但它上载了文件?是的,因为如果满足这些条件,您还需要阻止文件上载。我建议设置一个标志,设置上传默认有效,然后在条件中声明上传现在无效。最后,仅当标志仍然有效时才上载文件。