我想获取所选文件的路径并将其存储在数据库中以备将来使用。 我有以下代码,但它不起作用。
$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是我的输入类型=“文件”的名称,$ path是我正在使用的代码,但它不起作用。它只是空白。
任何可以帮助我或引导我采用不同的,希望更容易的方法的人?先感谢您。 :)
答案 0 :(得分:2)
PHP会将提交的文件存储在一个临时目录中,您不应该将其存储在数据库中,因为它会不稳定。
使用PHP的move_uploaded_file
函数将文件移动到文件系统中您喜欢的位置,然后将该路径存储在数据库中。
答案 1 :(得分:1)
您是否在HTML端正确设置了表单enctype,以便它能够正常工作。 其次,TMP只是一个临时位置,您必须使用PHP function move_uploaded_file将该文件移动到服务器可读目录 阅读有关enctypes,in this answer或on w3 schools.
的信息<form name="YourForm" method="post" enctype="multipart/form-data" action="">
答案 2 :(得分: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"
}
另请注意,在上传文件时可能存在权限问题(您希望将图像上传到的目录)。
祝你好运!