1

I want to get the path of a selected file and store it in the database for future use. I have the following code but it does not work.

$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 is the name of my input type="file" and $path is the code i am using but it does not work. IT just returns blank.

Anyone who can help me or lead me to a different, hopefully easier method? Thank you in advance. :)

Nek
  • 241
  • 4
  • 16

3 Answers3

2

PHP will store submitted files in a temporary directory, which you shouldn't be storing in the database as it'll be volatile.

Use PHP's move_uploaded_file function to move the file to where you'd like in your file system, and then store that path in your database.

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

alexpls
  • 1,914
  • 20
  • 29
  • I understand what you suggested. But i don't know how to edit my code. I'm new to php. Can you help me recreate my code? Any lead would be appreciated. – Nek Jan 06 '15 at 08:37
1

Have you set your form enctype correctly on the HTML side so that it is correctly able to work as it should. Secondly, TMP is just a temporary location, you MUST move that file to a server readble directory using PHP function move_uploaded_file Read about enctypes, in this answer or on w3 schools.

<form name="YourForm" method="post" enctype="multipart/form-data" action="">
Community
  • 1
  • 1
Arfan
  • 17
  • 6
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"

}

Also keep in mind that there can be permission issues (with the directory that you want the image to be uploaded to) while uploading the file.

Good Luck!

radiopassive
  • 556
  • 1
  • 5
  • 15