2012-05-31 2 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"]; 
관련 문제