Javascript 添加ajax jQuery文件上载

Javascript 添加ajax jQuery文件上载,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,因此,我有以下图片上传表单: HTML: <form name="upload_image"> <input id="fileupload" type="file" name="files[]" class="files rhiu" onchange="UploadImage(event);" accept='image/*'/> <div id="progress"> <div class="bar" style="w

因此,我有以下图片上传表单:

HTML:

<form name="upload_image">
    <input id="fileupload"  type="file" name="files[]" class="files rhiu" onchange="UploadImage(event);" accept='image/*'/>
    <div id="progress">
        <div class="bar" style="width: 0%;"></div>
    </div>
    <ul id="fileList">
    <!-- The file list will be shown here -->
    </ul>   
</form>
add_action( 'wp_ajax_UploadImage', 'UploadImage' );
add_action( 'wp_ajax_nopriv_UploadImage', 'UploadImage' );
function UploadImage()
{
$upload_dir = wp_upload_dir();
$files = $_FILES['files'];
foreach ($files['name'] as $key => $value) {            
    ...ADDING IMAGE TO A POST...
    } 
} 
echo json_encode($image_path);
exit;
}
function UploadImage(e)
{
  var form = document.forms.namedItem("upload_image"); 
  var formdata = new FormData(form); 
  formdata.append('action', 'UploadImage');
  jQuery.ajax({
    type: "POST",
    dataType: "json",
    url: upload_image.ajax_url, 
    data: formdata,
    contentType: false,
    processData: false,
    success: function(data) {                   
      alert('Success');
    }       
  });
}
var form = document.forms.namedItem("upload_video"); 
var formdata = new FormData(form); 
formdata.append('action', 'UploadImage');
$('#fileupload').fileupload({
  type: "POST",
  dataType: "json",
  url: upload_image.ajax_url, 
  data: formdata,
  add: function (e, data) {
    var tpl = $('<li class="working">'+
      '<input type="text" value="0" data-width="48" data-height="48" data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" />'+
        '<p></p><span></span></li>' );
    tpl.find('p')
      .text(data.files[0].name)
      .append('<i>' + formatFileSize(data.files[0].size) + '</i>');
    data.context = tpl.appendTo(ul);
    tpl.find('span')
      .click(function() {
        if (tpl.hasClass('working')) {
          jqXHR.abort();
        }
        tpl.fadeOut(function(){
          tpl.remove();
        });
      });
    var jqXHR = data.submit();
  },
  progressall: function (e, data) {
    var progress = parseInt(data.loaded / data.total * 100, 10);
    $('#progress .bar').css(
        'width',
        progress + '%'
    );
  }
});
JS:

<form name="upload_image">
    <input id="fileupload"  type="file" name="files[]" class="files rhiu" onchange="UploadImage(event);" accept='image/*'/>
    <div id="progress">
        <div class="bar" style="width: 0%;"></div>
    </div>
    <ul id="fileList">
    <!-- The file list will be shown here -->
    </ul>   
</form>
add_action( 'wp_ajax_UploadImage', 'UploadImage' );
add_action( 'wp_ajax_nopriv_UploadImage', 'UploadImage' );
function UploadImage()
{
$upload_dir = wp_upload_dir();
$files = $_FILES['files'];
foreach ($files['name'] as $key => $value) {            
    ...ADDING IMAGE TO A POST...
    } 
} 
echo json_encode($image_path);
exit;
}
function UploadImage(e)
{
  var form = document.forms.namedItem("upload_image"); 
  var formdata = new FormData(form); 
  formdata.append('action', 'UploadImage');
  jQuery.ajax({
    type: "POST",
    dataType: "json",
    url: upload_image.ajax_url, 
    data: formdata,
    contentType: false,
    processData: false,
    success: function(data) {                   
      alert('Success');
    }       
  });
}
var form = document.forms.namedItem("upload_video"); 
var formdata = new FormData(form); 
formdata.append('action', 'UploadImage');
$('#fileupload').fileupload({
  type: "POST",
  dataType: "json",
  url: upload_image.ajax_url, 
  data: formdata,
  add: function (e, data) {
    var tpl = $('<li class="working">'+
      '<input type="text" value="0" data-width="48" data-height="48" data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" />'+
        '<p></p><span></span></li>' );
    tpl.find('p')
      .text(data.files[0].name)
      .append('<i>' + formatFileSize(data.files[0].size) + '</i>');
    data.context = tpl.appendTo(ul);
    tpl.find('span')
      .click(function() {
        if (tpl.hasClass('working')) {
          jqXHR.abort();
        }
        tpl.fadeOut(function(){
          tpl.remove();
        });
      });
    var jqXHR = data.submit();
  },
  progressall: function (e, data) {
    var progress = parseInt(data.loaded / data.total * 100, 10);
    $('#progress .bar').css(
        'width',
        progress + '%'
    );
  }
});
到目前为止,一切正常

但是我正在尝试实现Bluimp jQuery文件上传,作为遵循所选答案的上传处理程序

我现在很难使用这个软件

所以我想做的是:

<form name="upload_image">
    <input id="fileupload"  type="file" name="files[]" class="files rhiu" onchange="UploadImage(event);" accept='image/*'/>
    <div id="progress">
        <div class="bar" style="width: 0%;"></div>
    </div>
    <ul id="fileList">
    <!-- The file list will be shown here -->
    </ul>   
</form>
add_action( 'wp_ajax_UploadImage', 'UploadImage' );
add_action( 'wp_ajax_nopriv_UploadImage', 'UploadImage' );
function UploadImage()
{
$upload_dir = wp_upload_dir();
$files = $_FILES['files'];
foreach ($files['name'] as $key => $value) {            
    ...ADDING IMAGE TO A POST...
    } 
} 
echo json_encode($image_path);
exit;
}
function UploadImage(e)
{
  var form = document.forms.namedItem("upload_image"); 
  var formdata = new FormData(form); 
  formdata.append('action', 'UploadImage');
  jQuery.ajax({
    type: "POST",
    dataType: "json",
    url: upload_image.ajax_url, 
    data: formdata,
    contentType: false,
    processData: false,
    success: function(data) {                   
      alert('Success');
    }       
  });
}
var form = document.forms.namedItem("upload_video"); 
var formdata = new FormData(form); 
formdata.append('action', 'UploadImage');
$('#fileupload').fileupload({
  type: "POST",
  dataType: "json",
  url: upload_image.ajax_url, 
  data: formdata,
  add: function (e, data) {
    var tpl = $('<li class="working">'+
      '<input type="text" value="0" data-width="48" data-height="48" data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" />'+
        '<p></p><span></span></li>' );
    tpl.find('p')
      .text(data.files[0].name)
      .append('<i>' + formatFileSize(data.files[0].size) + '</i>');
    data.context = tpl.appendTo(ul);
    tpl.find('span')
      .click(function() {
        if (tpl.hasClass('working')) {
          jqXHR.abort();
        }
        tpl.fadeOut(function(){
          tpl.remove();
        });
      });
    var jqXHR = data.submit();
  },
  progressall: function (e, data) {
    var progress = parseInt(data.loaded / data.total * 100, 10);
    $('#progress .bar').css(
        'width',
        progress + '%'
    );
  }
});
  • 使用blueimp jQuery文件上载来上载图像
  • 数据是通过ajax函数(“UploadImage”)添加的
  • 我需要在js中做什么更改才能包含插件

    我的尝试:

    <form name="upload_image">
        <input id="fileupload"  type="file" name="files[]" class="files rhiu" onchange="UploadImage(event);" accept='image/*'/>
        <div id="progress">
            <div class="bar" style="width: 0%;"></div>
        </div>
        <ul id="fileList">
        <!-- The file list will be shown here -->
        </ul>   
    </form>
    
    add_action( 'wp_ajax_UploadImage', 'UploadImage' );
    add_action( 'wp_ajax_nopriv_UploadImage', 'UploadImage' );
    function UploadImage()
    {
    $upload_dir = wp_upload_dir();
    $files = $_FILES['files'];
    foreach ($files['name'] as $key => $value) {            
        ...ADDING IMAGE TO A POST...
        } 
    } 
    echo json_encode($image_path);
    exit;
    }
    
    function UploadImage(e)
    {
      var form = document.forms.namedItem("upload_image"); 
      var formdata = new FormData(form); 
      formdata.append('action', 'UploadImage');
      jQuery.ajax({
        type: "POST",
        dataType: "json",
        url: upload_image.ajax_url, 
        data: formdata,
        contentType: false,
        processData: false,
        success: function(data) {                   
          alert('Success');
        }       
      });
    }
    
    var form = document.forms.namedItem("upload_video"); 
    var formdata = new FormData(form); 
    formdata.append('action', 'UploadImage');
    $('#fileupload').fileupload({
      type: "POST",
      dataType: "json",
      url: upload_image.ajax_url, 
      data: formdata,
      add: function (e, data) {
        var tpl = $('<li class="working">'+
          '<input type="text" value="0" data-width="48" data-height="48" data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" />'+
            '<p></p><span></span></li>' );
        tpl.find('p')
          .text(data.files[0].name)
          .append('<i>' + formatFileSize(data.files[0].size) + '</i>');
        data.context = tpl.appendTo(ul);
        tpl.find('span')
          .click(function() {
            if (tpl.hasClass('working')) {
              jqXHR.abort();
            }
            tpl.fadeOut(function(){
              tpl.remove();
            });
          });
        var jqXHR = data.submit();
      },
      progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('#progress .bar').css(
            'width',
            progress + '%'
        );
      }
    });
    
    var form=document.forms.namedItem(“上传视频”);
    var formdata=新formdata(表格);
    append('action','UploadImage');
    $('#fileupload')。fileupload({
    类型:“POST”,
    数据类型:“json”,
    url:upload_image.ajax_url,
    数据:formdata,
    添加:功能(e、数据){
    var tpl=$('li class=“working”>'+
    ''+
    “

    ”); tpl.find('p') .text(数据.files[0].name) .append(“”+formatFileSize(data.files[0].size)+“”); data.context=tpl.appendTo(ul); tpl.find('span') 。单击(函数(){ if(tpl.hasClass(“工作”)){ jqXHR.abort(); } tpl.fadeOut(函数(){ tpl.remove(); }); }); var jqXHR=data.submit(); }, progressall:功能(e、数据){ var progress=parseInt(data.loaded/data.total*100,10); $('#progress.bar').css( “宽度”, 进度+“%” ); } });
    我注意到的第一件事是HTML

    Need to make form multi-part for image uploading