簡體   English   中英

如何向ajax文件上傳添加其他POST參數?

[英]How do I add additional POST parameters to ajax file upload?

我正在使用ajax文件上傳javascript和php腳本來上傳圖片。 使用$ _FILES可以很好地工作,但我需要向處理腳本發送一些額外的數據。 HTML表單如下所示:

<form id="image1" action="" method="post" enctype="multipart/form-data">
  <label>image 1?</label>
  <p><input type="file" class="saveImage" name="image1" value="<?php echo $something; ?>" id="<?php echo $id; ?>" additional_info="some data" /></p>
  <p> <input type="submit" value="Upload" class="submit" /></p>
</form>

我需要能夠傳遞變量id和其他一些數據,將其稱為“additional_data”到php腳本,然后使用$additional_data = $_POST['additional_data']在我的php腳本中處理它。 我正在使用的javascript是:

    <script>
    $(document).ready(function (e) {
      $("#image1").on('submit',(function(e) {
        e.preventDefault();
        $("#message").empty();
        $('#loading').show();
        var DATA=$(this).val();
        var ID=$(this).attr('id');
        var ADDL=$(this).attr('additional_data');
        var dataString = 'image1='+DATA+'&id='+ID+'&additional_info='+ADDL;
        $.ajax({
          url: "uploadFile.php",  
          type: "POST",        
          // data:  new FormData(this), 
          data:  new FormData(this,dataString),
          contentType: false,   
          cache: false,   
          processData:false,        
          success: function(data)    
          {
            $('#loading').hide();
            $("#message").html(data);
          }
        });
      }));
    });
    </script>

它不發送dataString,只發送FILES數組。

我也想做同樣的事情。 這是我的解決方案:

JS部分:

var file_data = this.files[0];
    file_data.name = idaviz +'.pdf';
    var form_data = new FormData();
    form_data.append("file", file_data);
    form_data.append('extraParam','value231');
    console.log(file_data);
    console.log('here');
    var oReq = new XMLHttpRequest();
    oReq.open("POST", "ajax_page.php", true);
    oReq.onload = function (oEvent) {
        if (oReq.status === 200) {
            console.log('upload succes',oReq.responseText);
        } else {
            console.log("Error " + oReq.status + " occurred when trying to upload your file.<br \/>");
        }
    };

    oReq.send(form_data);
});

PHP部分:

echo $_REQUEST['extraParam']; //this will display "value231"
var_dump($_FILES['file']);   //this will display the file object

希望能幫助到你。

有關formData上額外參數的添加信息可以在這里找到!

我希望我理解你。 也許這個片段可以幫助你:

var formData = new FormData();
formData.append("image1", fileInputElement.files[0]);
formData.append("ID", ID);
formData.append("ADDL", ADDL);

然后將此formData變量設置為數據:

type: "POST",        
data:  formData,
contentType: false,   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM