【发布时间】:2022-01-05 16:52:32
【问题描述】:
我想在上传文件时做出 3 项限制 它工作的程序和文件上传,但由于某种原因,他们忽略了已经做出的限制并存储了所有文件
<?php
if ($_FILES["uploadedFile"]["size"] < 3000000){
if ((strlen($_FILES["uploadedFile"]["name"])<=50) && (!ctype_lower($_FILES["uploadedFile"]["name"]))){ //The original file name must not exceed 50 characters
$acceptedFileTypes = ["image/gif", "image/jpg", "image/jpeg","image/png"];
$fileinfo = finfo_open(FILEINFO_MIME_TYPE);
$uploadedFileType = finfo_file($fileinfo, $_FILES["uploadedFile"]["tmp_name"]);
if(in_array($uploadedFileType, $acceptedFileTypes))
{
if ($_FILES["uploadedFile"]["error"] > 0)
{
echo "Error: " . $_FILES["uploadedFile"]["error"] . "<br />";
}else{
echo "Upload: " . $_FILES["uploadedFile"]["name"] . "<br />";
echo "Type: " . $uploadedFileType . "<br />";
echo "Size: " . ($_FILES["uploadedFile"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["uploadedFile"]["tmp_name"];
if (file_exists("upload/" . $_FILES["uploadedFile"]["name"])){
echo $_FILES["uploadedFile"]["name"] . " already exists. ";
}else{
//If the file does not exist, transfer the file from the temporary folder to the upload folder using the original upload name
if(move_uploaded_file($_FILES["uploadedFile"]["tmp_name"], "upload/". $_FILES["uploadedFile"]["name"])){
echo "Stored";
}else{
echo "Something went wrong while uploading.";
}
}
}
}else{
echo "Invalid file type. Must be gif, jpg or jpeg.";
}
}else{
echo "The file name must not exceed 50 characters";
}
}else{
echo "Invalid file size. Must be less than 3MB.";
}
?>
我希望程序只上传小于 3MB 的文件 并存储少于 50 个字符且名称中至少包含 1 个大写字母的图像
【问题讨论】: