无法获得inputType =' file'表格上的数据提交

时间:2016-05-24 13:24:39

标签: php jquery forms cakephp

在jQuery中,当一个函数成功获得构建时。现在,当我提交此表单时,它会提供除inputType='file'之外的所有数据。我无法理解为什么会发生这种情况

这是表单创建时的jQuery代码

content += '<form method="POST" action="'+formURL+'" id="data" enctype="multipart/form-data">'+
               '<input type="text" name="album_id" value="'+id+'">'+
               '<input type="text" name="user_id" value="'+user_id+'">'+
               '<input type="file" name="image" id="image_upload">'+
               '<input type="submit" value="Submit">'+
           '</form>'; 

此处表单正在提交

$("form#data").submit(function() {
    var formData = new FormData($(this)[0]);
    $.post($(this).attr("action"), formData, function(data) {
        console.log(data);
    });

    return false;
});

我将这个表单数据发送到cakephp中的控制器中。 在控制器中,我只获得仅具有text类型的输入字段数据。但我也需要file类型。

2 个答案:

答案 0 :(得分:1)

请使用jquery.form.js进行文件上传。

http://malsup.com/jquery/form/

<form method="POST" action="'+formURL+'" id="data" enctype="multipart/form-data" onsubmit="return submit_form();" >


function submit_form(){

    $('#data').ajaxSubmit({  
      method:'post',
      dataType:'json',    
      success: function(resp){

      }

    });
    return false;
  }

答案 1 :(得分:0)

您可以像这样更改jquery函数

$("form#data").submit(function(){

var formData = new FormData($(this)[0]);

$.ajax({
    url: $(this).attr("action"),
    type: 'POST',
    data: formData,
    async: false,
    success: function (data) {
        alert(data)
    },
    cache: false,
    contentType: false,
    processData: false
 });

  return false;

});