序列化文件类型jQuery

Man*_*hta 11 jquery

我正在尝试使用jquery.form.js jQuery API 序列化包含文件图像字段的表单数据.API帮助我搜索包括图像和返回图像对象在内的数据字段[object file]

这是我的序列化代码

    var data = $js("form[name=ajx_imgupload]").formSerialize();
    var img = $js("#upload_image").fieldSerialize();

    $js.ajax({
                 url: "index.php?option=com_obituary&task=upload",
                 type: "POST",
                 dataType:"json",
                 data: data,
                 beforeSend: function(){
                   $js(".loadingblock").show();
                 },
                 complete: function(){
                   $js(".loadingblock").hide();
                 },
                 success: function(res){
                   alert();  
                 },
                 error: function(jqXHR, textStatus, errorThrown){
                   alert(textStatus);                
                 }
           });
Run Code Online (Sandbox Code Playgroud)

陷入困境......帮助将不胜感激.

谢谢

小智 9

让我来帮助你.我在1天前做过这个.我有包括图像领域的形式.当你通过提交上传图片时jquery.form.js

注意:我正在使用jqueryimageupload.php上传文件,如果你想我可以粘贴它.这是一个简单的PHP文件上传.http://www.w3schools.com/php/php_file_upload.asp

HTML部分:

<form name="imageform" id="imageform" action="jqueryimageupload.php" method="post">
  <input type="file" name="resim" id="img" onchange="ImageUpload()" />
  <input type="hidden" name="action" value="imageup" />
</form>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

function ImageUpload() {
    $("#return").show();
    $("#return").html('');
    $("#return").html('<img src="images/load2.gif" alt="Uploading...."/> wait, uploading...');
    $("#imageform").ajaxForm({
        target: '#return',
        success: function() {
            $("#return").fadeOut(10000);
        }
   }).submit();     
}
Run Code Online (Sandbox Code Playgroud)

在最后表格提交:

$('#form').submit(function() {
    var img=$('#image').val();
    var forms=($(this).serialize());
    $.ajax({
        type:"POST",            
        url: "do.php?do=upload",
        data:forms+'&r='+encodeURIComponent(img),
        success: function(result){ //your code }     
    });
 });
Run Code Online (Sandbox Code Playgroud)


小智 9

你可以这样使用(来自http://portfolio.planetjon.ca/2014/01/26/submit-file-input-via-ajax-jquery-easy-way/)

$( '#my-form' )
  .submit( function( e ) {
    $.ajax( {
      url: 'http://host.com/action/',
      type: 'POST',
      data: new FormData( this ),
      processData: false,
      contentType: false
    } );
  } );
Run Code Online (Sandbox Code Playgroud)

它更灵活,更简单