我尝试使用图片上传功能上传.png文件。一些图像有效,例如this one。但由于某些原因,使用Windows快照工具捕捉的.png图像不起作用。
我收到的错误消息是:"抱歉,只有JPG,JPEG,PNG&允许使用GIF文件。",当然还有#34;抱歉,您的文件未上传。" (见下面的代码)。
我确定我使用Windows快照工具生成的是.png图片,为什么我的代码不会接受它们呢?
<?php
$target_dir = "i/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["imgUpload"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
$uploadOk = 1;
} else {
echo "File is not an image.<br>";
$uploadOk = 0;
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.<br>";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 5000000) {
echo "Sorry, your file is too large.<br>";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.<br>";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.<br>";
// if everything is ok, try to upload file
} else {
$path_parts = pathinfo($target_file);
$tmpFileName = round(microtime(true));
$newfilename = $tmpFileName . '.' . $path_parts['extension'];
//Et cetera et cetera
我的上传代码几乎完全基于W3C's示例。 任何人都可以解释这个问题吗?
答案 0 :(得分:0)
扩展可以有任何案例。
您需要不区分大小写的比较。