Php Can';不要上传一些.png文件
我尝试用图像上传功能上传.png文件。例如,一些图像起了作用。但由于某些原因,使用Windows快照工具拍摄的.png图像无法工作 我收到的错误消息是:“对不起,只允许使用JPG、JPEG、PNG和GIF文件。”,当然还有“对不起,您的文件没有上传。”(请参阅下面的代码) 我确信我用Windows快照工具生成的是.png图像,那么为什么我的代码不接受它们呢Php Can';不要上传一些.png文件,php,html,file-upload,Php,Html,File Upload,我尝试用图像上传功能上传.png文件。例如,一些图像起了作用。但由于某些原因,使用Windows快照工具拍摄的.png图像无法工作 我收到的错误消息是:“对不起,只允许使用JPG、JPEG、PNG和GIF文件。”,当然还有“对不起,您的文件没有上传。”(请参阅下面的代码) 我确信我用Windows快照工具生成的是.png图像,那么为什么我的代码不接受它们呢 <?php $target_dir = "i/"; $target_file = $target_dir . base
<?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
扩展可以有任何情况
你需要一个不区分大小写的比较。我的心理调试技能告诉我你的问题是“png”!=“PNG”
.Oh。。我不知道这有什么关系。我试试看。为什么有些图像是PNG,而另一些只是PNG呢?天啊,这很有效。天哪,这太尴尬了。你真是个通灵的人。.gif是否也可以与.gif或类似的格式出现?是的;扩展并不总是小写的。