2016-03-27 4 views
0

Я пытаюсь настроить свой сайт, чтобы я мог использовать мобильное устройство для загрузки изображения. Однако всякий раз, когда я пытаюсь загрузить изображение он не работает и выбрасывает две ошибки:Загрузка изображений не работает PHP?

Предупреждение: (Приложение Закачивает/Изображение 27/03/16.jpg) move_uploaded_file [function.move загруженным-файл] : не удалось открыть поток: нет такого файла или каталога в /home3/hutch/public_html/stencylcollins/upload1.php в строке 29

Предупреждение: move_uploaded_file() [function.move-uploaded-file]: Невозможно переместить '/TMP/phpSZy8LW»до 'Закачивает/Image Attachment 27/03/16.jpg' в /home3/hutch/public_html/stencylcollins/upload1.php на линии 29

И после того, как го я получаю свое эхо

ЗАГРУЗИТЬ УСПЕШНЫЙ: Ваш документ уже загружен и готов к отправке.

Кто-нибудь знает, что здесь происходит?

<?php 
    //login 
    ob_clean();session_start(); 

    if (isset($_GET['logout'])){ 
    session_destroy(); 
    } 

    if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) { 
     header("Location: index.php"); 
    } 

    //timezone 

    date_default_timezone_set('Europe/London'); 
    $date = date('d/m/y', time()); 

    //upload 
    if(isset($_FILES['UploadFileField'])){ 
     $allowed = array('jpg','png','jpeg'); 
     $name = $_FILES["UploadFileField"]["name"]; 
     $tmp = $_FILES['UploadFileField']['tmp_name']; 
     $type = $_FILES['UploadFileField']['type']; 
     $newName = "Image Attachment ".$date.".jpg"; 
     $types = array('jpg','png','jpeg'); 
     $ext = pathinfo($name, PATHINFO_EXTENSION); 

     if(in_array($ext,$types)){ 
      move_uploaded_file($tmp, "UPLOADS/$newName"); 
      echo '<font color="#006600" size="3"><p align="center"><b>UPLOAD SUCCESSFUL: </font><font color="#000000" size="3">Your document has now been uploaded and is ready to send.</b></p></font>'; 
     } 

     else { 
      if(!$tmp){ 
       echo '<font color="#FF0000" size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">No document has been selected.</b></p></font>'; 
      } 

      else { 
       echo '<font color="#FF0000" size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">Uploaded document was an incorrect extension type, please use ".jpg", ".jpeg", or "png" only.</b></p></font>'; 
      } 
     } 
    } 
?> 
+0

Трудно сказать точно, не зная, как выглядит HTML-форма. Кроме того, если на сервере * NIX 'UPLOADS' не совпадает с' uploads'. Кроме того, я вижу массив GET, поэтому убедитесь, что форма не использует GET, а не POST, включая действительный enctype. –

+0

Вам дается «ответ» ниже. Я позволю тебе с ним справиться. Независимо от того, является ли это «решением», это вне меня. –

ответ

1

Вы не можете иметь косую черту в имени файла. Имя файла Image Attachment 27/03/16.jpg полностью недействительно, потому что вы действительно ссылаетесь на файл с именем 16.jpg в папке 03, которая сама по себе находится в Image Attachment 27. Ни один из этих каталогов не существует, следовательно, ваша ошибка.

+0

Спасибо, что проблема решена. –

-2

Имя файла с пробелами ??? Я думаю, что это плохо.

// $newName = "Image Attachment ".$date.".jpg"; ??? 
$newName = "Image_Attachment_".$date.".jpg"; 

// you can check where you trying to upload a file 
if(is_dir("UPLOADS/")) { echo "dir ok";} else { echo "dir not ok"; } 

и в вашем коде, вам не нужно использовать time() в дату функции, потому что date() без второго параметра возвращает текущую дату :)

+0

* "Имя файла с пробелами ???" * - Почему бы и нет? –

+0

Вы можете использовать его) Но я думаю, что это плохая практика. – Veniamin

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