我有一个恼人的问题。当我使用method =“post”提交以下代码并查找$ _POST变量时,代码无法识别它。当我切换到method =“get”并查找$ _GET变量时,它工作正常。我宁愿不使用Get。有什么建议?我的最终代码也包含其他输入,但是,我希望文件输入是可选的。所以我只需要在实际发送文件输入时处理代码。谢谢你的帮助!
//form.html.php
<form action="index.php" method="post" enctype="multipart/form-data">
<label id="upload">Select file to upload:
<input type="file" id="upload" name="foobar" /></label>
<input type="submit" value="Submit" />
</form>
//index.php
if(isset($_POST['foobar']))
{
//some code
}
然而,这很好用
//form.html.php
<form action="index.php" method="get" enctype="multipart/form-data">
<label id="upload">Select file to upload:
<input type="file" id="upload" name="foobar" /></label>
<input type="submit" value="Submit" />
</form>
//index.php
if(isset($_GET['foobar']))
{
//some code
}
答案 0 :(得分:6)
要获取文件,请使用$_FILES
,您必须使用post
方法。
答案 1 :(得分:1)
您正在上传文件,除了“文件”类型输入之外没有任何输入。因此不会有任何$ _POST值发送放入$ _FILES数组。并且您的表单需要设置method =“post”。
检查此代码
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];