2011-12-17 5 views
4

Я использовал для загрузки файла изображения из HTML5/JS и используя PHP-скрипт, чтобы сохранить его в localhost (/ var/www /), но я не могу его сохранить. функция move_uploaded_file всегда возвращает false, пока существует объект в объекте _FILES. Я новичок в PHP:Как сохранить загруженный файл на localhost?

$target = "upload/"; 
    if(!empty($_FILES)) 
    { 
    if(move_uploaded_file($_FILES['image_file']['tmp_name'], $target)) 
    { 
    echo "The file ". basename($_FILES['image_file']['name']). " has been uploaded..."; 
    } 
    else { 
    echo "Sorry, there was a problem uploading your file. {$error}"; 
    } 
    } 
    else 
    { 
    echo "_files is empty"; 
    } 
+0

Включите отчеты об ошибках! –

+0

Проблема заключается во втором параметре move_uploaded_file - см. Мой ответ – SlavaNov

+0

Возможно, прочитал документы на move_uploaded_file ... :) – Corbin

ответ

5

Попробуйте

move_uploaded_file($_FILES['image_file']['tmp_name'], $target.$_FILES['image_file']['name']) 

Потому что вам нужно указать имя файла, а не только каталог.

Смотрите пример из PHP documentation

<?php 
$uploads_dir = '/uploads'; 
foreach ($_FILES["pictures"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
     $name = $_FILES["pictures"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 
?> 
+0

Спасибо за ваш ответ. Надеюсь, что проблема должна была быть решена, но ее все еще там, я изменил свой код в соответствии с вашим ответом, но я не вижу файл в папке загрузки. больше предложений? –

+0

Изменен код, пожалуйста, посмотрите, работает ли он сейчас (имя tmp_name для имени) – SlavaNov

+0

все равно его, когда я печатаю имя или размер файла через _FILES ['image_file'] ['name'], он показывает мне правильное имя, что означает Я получаю файл на моей php-странице. –

0

попробовать этот

if(is_uploaded_file($_FILES['image_file']['tmp_name'])) 
    { 
     move_uploaded_file($_FILES['image_file']['tmp_name'], $target.$_FILES['image_file']['name']); 
    echo "The file ". basename($_FILES['image_file']['name']). " has been uploaded..."; 
    } 
Смежные вопросы