2017-02-13 26 views
-1

我有一個空的$ _POST數組,當我上傳文件時出現問題。

這裏的形式:

<div class="popup"> 
    <h3>UPLOAD</h3> 
     <a class="close" href="#">&times;</a> 
     <div class="content"> 
      <form 
       id="uploadForm" 
       method="post" 
       enctype="multipart/form-data" 
       action="resources/upload.php?dir=<?php if(isset($_GET['dir'])){echo $_GET['dir'];} ?>" 
       enctype="multipart/form-data"> 

       <input type="file" name="fichier" id="file" class="inputfile"/> 
       <label for="file">Choisir un fichier</label><br> 
      </form> 
      <button onClick="submitUpload();" id="smbtBtt">Uploader</button> 
     </div> 
</div> 

這是submitUpload fonction:

function submitUpload() 
{ 
    if(document.getElementById("file").value != ""){ 
     document.getElementById("uploadForm").submit(); 
    } 
    else 
    { 
     alert("Please select a file!"); 
    } 

}

然後在upload.php的文件,我剛剛的var_dump()數組$ _FILES和$ _POST

這是上午6點,我的5小時編程,所以這就是爲什麼我是國王 :)。

非常感謝!

+0

你有使用var formData = new formdata();函數獲取所有文件數據.. – Gulshan

+0

使用提交按鈕之前窗體關閉..檢查此更改 – Gulshan

+0

@Gulshan不會更改任何內容...:/ – Amperclock

回答

0

使用此代碼。可能是它可以幫助你

$('form#uploadForm').submit(function(e){ 
    var formData = new FormData(this); 

$.ajax({ 
url: "upload_file.php",    
type: "POST", 
data: formData, 
mimeType:"multipart/form-data", 
contentType: false, 
cache: false, 
processData:false, 
success: function(data) 
{ 
    alert(data); 
} 
}); 
return false; 
}); 
+0

我仍然可以像以前一樣使用我的字段嗎? – Amperclock

+0

@Alteus check formData變量..它獲取您輸入文件的所有數據 – Gulshan

0
<div class="popup"> 
    <h3>UPLOAD</h3> 
     <a class="close" href="#">&times;</a> 
     <div class="content"> 
      <form 
       id="uploadForm" 
       method="post" 
       enctype="multipart/form-data" 
       action="resources/upload.php?dir=<?php if(isset($_GET['dir'])){echo $_GET['dir'];} ?>" 
       enctype="multipart/form-data"> 

       <input type="file" name="fichier" id="file" class="inputfile"/> 
       <label for="file">Choisir un fichier</label><br> 
      </form> 
      <button onClick="submitUpload();" id="smbtBtt">Uploader</button> 
     </div> 
</div> 

<script type="text/javascript"> 
    function submitUpload() 
{ 
    if(document.getElementById("file").value != ""){ 
     document.getElementById("uploadForm").submit(); 
    } 
    else 
    { 
     alert("Please select a file!"); 
    } 
} 
</script> 

upload.php的

<?php 
$test=$_FILES["fichier"]["tmp_name"]; 

echo $test; 

?>

在表單
+0

我需要使用POST方法。您無法使用GET來傳輸文件。這是我的PHP數組在PHP中是空的.. – Amperclock

+0

您可以使用get方法獲得$ _GET ['fichier'] ..如果您使用POST方法,我將盡快更新答案 –

+0

已更新的答案及其成功的工作。 .. –

1

在這裏,你正在使用的文件類型字段元素。你必須使用'$ _FILES'而不是$ _POST。試試這個

1

對不起,我不能讓$ FILES和$ POST數組同時工作,所以我找到了另一個沒有其中一個的解決方案。仍然坦克到每一個。

+0

你找到了什麼解決方案。在你的代碼中必須有一些錯誤,因爲你不能在當前代碼中同時使用POST和FILE –

+0

,你除了文件外沒有其他任何東西,這就是爲什麼$ _POST爲空 –

+0

@Anant沒關係,我解決了它。現在我有一些ACL錯誤... T_T – Amperclock