使用input = file表单的JQuery自动上传

时间:2015-04-14 08:13:57

标签: jquery html forms input

我有这个表格

<form id="uploadFile" enctype="multipart/form-data">
    <h3>Upload a file:</h3>
    <input type="file" name="fileToUpload" id="fileToUpload" class="fileToUpload"/>
    <input type="submit" id="submit" value="Upload" name="submit"/>
</form>

这个提交函数的jQuery代码(全部在同一个php文件中):

  $('#uploadFile').submit(function()
  {
    $old=$("#activity").html();

    event.preventDefault();
    $.ajax(
    { 
      url: "upload.php",
      type: 'POST',
      data: new FormData(this),
      contentType: false,
      cache: false,
      processData: false,
      success: function(data)
      {
        $('.info').html(data);   
        $('.info').show();

        $("#content").load("this_same_file.php"); 
      }
    });
  }); 

工作正常。 我需要做的是自动化&#39; &#39; 提交&#39;呼叫。我的意思是,一旦我在弹出文件窗口中单击“确定”,我就会自动提交表单。

我尝试按照帖子How do I auto-submit an upload form when a file is selected?上发布的建议进行操作,但我唯一能做的就是一个window.alert,告诉我我点击了弹出窗口的OK按钮。

如何在我的代码中实现此功能? 提前感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

您需要在submit change事件发生后触发input:file操作,

$('#fileToUpload').change(function() {
    $('#submit').click();
    // or $('#uploadFile').submit();
});

答案 1 :(得分:0)

您需要触发(doc)

答案 2 :(得分:0)

$("#fileToUpload").change(function() {$("#uploadFile").submit();});

我认为你必须实现Jquery ajaxForm来发送带有文件输入的表单。

答案 3 :(得分:0)

$("#fileToUpload").live( 'change', function () {
 $('#uploadFile').submit();
});

答案 4 :(得分:-1)

您可以通过在更改事件或点击事件上调用javascript函数来上传图像。

<input type="file" onchange="uploadSharepic();" id='uploadBtn' value="Upload">

在剧本中

function uploadSharepic(){
    var val = $('#uploadBtn').val();
    $('#uploadshareFile').val(val);
    switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
        case 'gif': case 'jpg': case 'png': case 'jpeg':
            $( "#uploadShare_image" ).submit();
            break;
        default:
            $('#uploadBtn').val("");
            $('#uploadshareFile').val("");
            $('.sharerror').removeClass('DisplayNone');
            $('.sharerror').addClass('DisplayBlock');
            $('.sharerror').html('Plese select image of type (gif, jpg, png).');
            break;
    }
}