2016-03-28 5 views
0

У меня есть сценарий для загрузки изображения. Он отлично работает и дает изображению имя image1.png.php image upload extension

Проблема, с которой я сейчас сталкиваюсь, это то, что я могу загружать только изображения png, и мне нужно иметь возможность загружать все виды изображений. Я знаю, что мне нужно получить доб. но я не могу заставить его работать.

Вот этот скрипт

<?php $target_dir = "images2/"; 
$target_file = $target_dir . ("image1.png"); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
if($check !== false) { 
    echo "File is an image - " . $check["mime"] . "."; 
    $uploadOk = 1; 
} else { 
    echo "File is not an image."; 
    $uploadOk = 0; 
} 
} // Check if file already exists 
if (file_exists($target_file)) { 
echo "Sorry, file already exists."; 
$uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
echo "Sorry, your file is too large."; 
$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."; 
$uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
echo "Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
    echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
} else { 
    echo "Sorry, there was an error uploading your file.";}} 
    ?> 
+1

Вам нужно проверить OR, а не AND при проверке ваших файловых форматов. –

ответ

0

Удалить ниже фрагмент кода из вашего сценария загрузки данных

// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
$uploadOk = 0; 
} 

и установить $uploadOk=1; или нет необходимости, чтобы установить его.

Возможно, это поможет вам.

0

в том, что если условие и может использовать только следующее условие

if($imageFileType != "png" ) { 
    echo "</br>Sorry, only PNG files are allowed."; 
    $uploadOk = 0; } 
+0

OP хочет, чтобы все типы изображений были разрешены. –

+0

в этом случае вы можете удалить это, если код условия –

+0

использовать этот код if ($ imageFileType! = "Jpg" || $ imageFileType! = "Png" || $ imageFileType! = "Jpeg" || $ imageFileType! = " gif ") { echo" Извините, разрешены только файлы JPG, JPEG, PNG и GIF. "; $ uploadOk = 0; } –

0

обновления этой линии: if($imageFileType == "jpg" || $imageFileType == "png" || $imageFileType == "jpeg" || $imageFileType == "gif") {

И удалить $uploadOk

2

Может быть лучше, чтобы проверить, чтобы увидеть, если расширение изображения находится в массиве. Более короткий код, меньше проблем:

$imgExt = array('jpg','png','jpeg','gif'); 
if(!in_array($imageFileType, $imgExt)) { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 

PHP in_aray()

0

Вы можете использовать расширение загружаемого файла для целевого файла:

переменного $ целевой_файла не содержит расширение:

$target_file = $target_dir . ("image1."); 

Он добавляется в конце:

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file.$imageFileType)) {