2012-05-31 110 views
0

我有一种恼人的问题。当我使用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 
} 

回答

6

获取文件,请使用$_FILES,并且必须使用post方法。

+0

真棒。这工作。谢谢! – TimSum

+0

isset($ _ FILES ['foobar'])返回true是否已经上传文件,所以我将其更改为if(isset($ _ FILES ['foobar'])和$ _FILES ['foobar'] ['name' ]!=“”) – TimSum

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"];