2015-01-06 6 views
1

Я хочу получить путь к выбранному файлу и сохранить его в базе данных для будущего использования. У меня есть следующий код, но он не работает.Как получить путь к выбранному файлу в input type = "file" с помощью php?

$path = $_FILES['txtImage']['tmp_name']; 
$sql = "INSERT INTO tblquestions (q_category, q_question, q_image, q_correct, q_answer2, q_answer3, q_answer4) VALUES ('$_POST[txtCategory]','$_POST[txtQuestion]','$path','$_POST[txtCorrect]','$_POST[txtChoice2]','$_POST[txtChoice3]','$_POST[txtChoice4]')"; 

txtImage это имя моего входного типа = «файл» и $ путь код я использую, но он не работает. Это просто возвращает пусто.

Любой, кто может мне помочь или привести меня к другому, надеюсь, более простому методу? Заранее спасибо. :)

ответ

1
$tmp_path = $_FILES['txtImage']['tmp_name']; 

$dest_path = path_where_in_your_server_you_want_this_image_to_be_moved.$_FILES['textImage']['name']; (eg: 'images/'.$_FILES['name']) 

if(move_uploaded_file($tmp_path,$dest_path)){ //this will move the file from tmp location in server to the destination you provide in the second parameter 

$sql = "INSERT INTO tblquestions (q_category, q_question, q_image, q_correct, q_answer2, q_answer3, q_answer4) VALUES ('$_POST[txtCategory]','$_POST[txtQuestion]','$dest_path','$_POST[txtCorrect]','$_POST[txtChoice2]','$_POST[txtChoice3]','$_POST[txtChoice4]')"; 

}else{ 

echo "Image could not be uploaded" 

} 

Также имейте в виду, что там могут быть проблемы разрешения (с каталогом, в который вы хотите загрузить изображение) при загрузке файла.

Удачи!

+0

Спасибо. это сработало. :) – Nek

2

PHP будет хранить предоставленные файлы во временном каталоге, который вы не должны хранить в базе данных, поскольку он будет неустойчивым.

Используйте функцию PHP move_uploaded_file, чтобы переместить файл туда, где вы хотите, в свою файловую систему, а затем сохраните этот путь в своей базе данных.

Docs: http://php.net/manual/en/function.move-uploaded-file.php

+0

Я понимаю, что вы предложили. Но я не знаю, как редактировать свой код. Я новичок в php. Можете ли вы помочь мне воссоздать мой код? Любое руководство будет оценено по достоинству. – Nek

1

Вы установите форму ENCTYPE правильно на HTML сторону так, чтобы он правильно в состоянии работать как положено. Во-вторых, TMP это лишь временное место, вы должны переместить этот файл в readble каталоге сервера, используя PHP function move_uploaded_file Читайте о enctypes, in this answer или on w3 schools.

<form name="YourForm" method="post" enctype="multipart/form-data" action=""> 
Смежные вопросы