2017-02-13 7 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 varData = 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 variable..it получить все данные входных полей – 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. И это мой POST-массив в php, который пуст. – Amperclock

+0

вы можете получить $ _GET ['fichier'], используя метод get. Если вы используете метод POST, я как можно скорее обновлю ответ. –

+0

обновленный ответ и его работа Успешно. .. –

1

Здесь в вашей форме, вы используете поля элемента типа файла. Вы должны использовать '$ _FILES' вместо $ _POST. Попробуйте это

1

Извините, ребята, я не смог заставить $ FILES и массивы $ POST работать одновременно, поэтому я нашел другое решение без одного из них. Все еще танков для каждого.

+0

какое решение вы нашли. В вашем коде должна быть некоторая ошибка, из-за которой вы не можете одновременно использовать POST и FILE –

+0

в своем текущем кодексе, у вас нет ничего кроме файла, и поэтому $ _POST пуст –

+0

@Anant Это нормально, я решил. Теперь я получил некоторые ошибки ACL ... T_T – Amperclock