2014-02-16 2 views
0

Я думаю, мне удалось загрузить изображение в PHP файл с помощью AJAX, сейчас я пытаюсь переместить его в известном месте, вот мой код:PHP, как изменить местоположение загруженного изображения

$allowedExtensions = array('JPEG', 'JPG', 'PNG', 'GIF'); 
$temp = explode(".", $_FILES["image"]["name"]); 
$extension = end($temp); 
if (in_array($extension, $allowedExtensions)) { 
    if (file_exists("../pictures/" . $_FILES["image"]["name"])) { 
     echo $_FILES["image"]["name"] . " already exists"; 
    } else { 
     move_uploaded_file($_FILES["image"]["name"], "../pictures/" . $_FILES["image"]["name"]); 
     echo "Moved to ". "../pictures/" . $_FILES["image"]["name"]; 

    } 
} 

Когда я запускаю, я получаю эхо, говоря, что оно было перенесено в «../pictures/capture.JPG», но когда я смотрю в эту папку, его нет.

Любые идеи, почему? Я также не знаю, что делает ["name"], поэтому объяснение этого также будет большим спасибо!

+1

Вы просто считаете, что оператор 'move_uploaded_file' выполнен успешно. Никогда не делай этого. *** Всегда *** проверяйте возвращаемые значения, чтобы убедиться, что утверждение выполнено успешно. –

ответ

2

Похоже, что в вашем коде есть небольшая ошибка. Когда PHP загружает изображение, он хранит его во временном каталоге. Поэтому для того, чтобы двигаться, вы должны сделать это:

move_uploaded_file($_FILES["image"]["tmp_name"], "../pictures/" . $_FILES["image"]["name"]); 

Обратите внимание на tmp_name выше. Если остальная часть вашего кода в порядке, это должно сработать!

+0

Спасибо! Это сработало! что второе [] (т. е. '[" tmp_name "]') для? что он делает точно? – benharris

+1

У меня была такая же проблема несколько месяцев назад. Я потерял много времени с этим! Я не уверен в этом, но я обнаружил, что когда php загружает изображение, он сохраняет изображение во временном каталоге. Поэтому я думаю, что «tmp_name» - это способ сообщить php, чтобы получить изображение в этом каталоге, чтобы сохранить его в нужном. Добро пожаловать! – DanielTheRocketMan

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