2012-05-25 2 views
0

У меня проблема с сохранением файлов PDF в папках на моем сервере. Код работал в одно время, и теперь это не так. Я хочу, чтобы это было, чтобы проверить, пытается ли кто-нибудь загрузить PDF-файл при отправке формы, и если в поле файла есть PDF-файл, он загружает его, а затем сохраняет путь к базе данных mysql. Код ниже:Сохранение файла PDF с использованием PHP

if (!empty($_FILES['pdf'])){ 
      $idir = "../files/PDF/"; //my directory file is supposed to be saved in 
      $randomd=rand(0000000,9999999); //creates a random number as filename 
      $domain = "http://".$_SERVER['HTTP_HOST']; 
      $file_ext = strrchr($_FILES['pdf']['name'], '.'); grabs file extension. my code checked if the file was a pdf a different way and neither seems to work. 
      $destination=$randomd.$file_ext; //new filename 
      if ($file_ext=='pdf') { 
       move_uploaded_file($_FILES['pdf']['tmp_name'], "$idir" . $destination); 
       $pdf= $domain."/files/PDF/".$destination;            } else { echo("File type not supported."); 
mysql_query("UPDATE tbl_listings SET pdf='$pdf' WHERE listing_id='$lid'"); 
                      } 

Условный не пусто не работает, и она всегда пытается загрузить файл, но когда я проверяю папку ничего там и оно не обновлять MySQL.

+1

Что возвращает 'move_uploaded_file()' return? – yuvin

+0

@ yuvin ничего. – user1385895

+0

Эта функция возвращает TRUE или FALSE (в некоторых случаях она выдает предупреждения). Пожалуйста, обратитесь к [документации] (http://php.net/manual/en/function.move-uploaded-file.php). Я думаю, что причиной может быть разрешение на запись или размер файла. Также попробуйте использовать абсолютный путь назначения. – yuvin

ответ

1

$_FILES['pdf'] никогда не будет пустым (когда форма была отправлена), независимо от того, был ли выбран файл или нет, он всегда будет возвращать массив.

Отметьте $_FILES['pdf']['error'], это будет 4, когда файл не был загружен.

+0

Он вернул число 0. – user1385895

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