我是PHP的新手所以请原谅这样的元素问题。
我正在为我的网站制作一个表单,其中有几个文本输入,但现在我正在努力实现图像上传功能,但是我遇到了离开底层的麻烦。
在我的表格中,我有:
<form id="generalform" class="container" method="POST" action="process.php" autocomplete="on" enctype="multipart/form-data" >
<several text inputs here that work>
<input type="file" class="fileuploadinput" name="Image1">
<input type="submit" name="submit" id="submit" class="button" value="Submit"/>
</form>
但我的剧本:
if(!empty($_POST['Image1'])) {
echo 'File Selected and Data set in DB';
} else {
echo 'NO File Selcted but Data Inserted';
}
总是回显没有文件被选中但数据被插入并且它将文本数据插入到数据库中,但为什么不拾取图像而是告诉我没有选择图像(通过我的错误信息“'没有文件被选中但是数据已插入“)??
如果有人能帮助我,我会非常感激,并且我提前感谢你们。
答案 0 :(得分:2)
无法通过$ _POST超全局访问您上传的文件。可以通过$_FILES superglobal访问它们。
这应该有效:
if(file_exists($_FILES['Image1']['tmp_name']) && is_uploaded_file($_FILES['Image1']['tmp_name'])) {
echo 'File Selected and Data set in DB';
}
else {
echo 'NO File Selcted but Data Inserted';
}
file_exists()检查文件是否存在,is_uploaded_file()检查有问题的文件是否是通过HTTP POST(在本例中为您的表单)上传的。
我对你的输出有点困惑。你是什么意思:
没有选择文件但插入了数据