2017-02-07 3 views
0

Мне нужно создать простую веб-страницу, через которую вы можете загрузить файл изображения, который отправляется в каталог на сервере, который был создан ранее.Файлы не загружаются через PHP

Вот код файла index.php:

<!DOCTYPE html> 
<html> 
<body> 

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 

</body> 
</html> 

Вот код для upload.php:

<?php 
$target_dir = "uploads/"; 
$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["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; 
    } 
} 
?> 

код размещается на сервере бесплатного хостинга (не оплаченной один), и я создал dir, называемый 'uploads', в том же подкаталоге, где расположены оба скрипта. В настройках настройки php, похоже, включен. Индекс index.php отображается в порядке, я выбираю изображение и загружаю его, он загружается на секунду, а затем отображает «Файл - изображение - изображение/gif». Однако, когда я попал в каталог загрузки, там нет ни одного файла.

В чем может быть проблема? Заранее спасибо.

+0

где код загрузки? вы просто проверяете расширение файла! –

+0

В какой момент вы перемещаете/копируете файлы? это должно быть полезно http://php.net/manual/en/features.file-upload.post-method.php – xlordt

+0

@Arsalan Mithani он загружает файл, когда он его отправляет, но поскольку он не использовал ' move_uploaded_file', временный файл удаляется с сервера, так как он истекает вскоре после отправки страницы. – Kaboom

ответ

4

Вы не переместив файл на сервер после загрузки временного файла, так что будет удален

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."; 
    } 
} 
+0

Спасибо! Это сработало. – mynex

+0

Вы также можете использовать некоторую проверку расширения файлов с помощью массива разрешенных типов файлов, чтобы люди не могли загружать вещи, которые они могут не захотеть на вашем сервере. Например. скрипт php, который вытирает весь ваш сайт или каталог. Просто голова :) – Kaboom

+0

Учебник, за которым я следую, также охватывал это, поэтому не беспокойтесь :) Спасибо за предупреждение! – mynex

Смежные вопросы