jQuery ajax提交文件字段

18

我有一个带有文件输入的表单。如何使用jQuery获取文件并将其上传到php脚本?我可以只使用.val()来获取值,然后进行发布吗?例如,如果文件输入具有id file,我是否可以这样做:

$('#submit').click(function() {
    var file = $('#file').val();
    $.post('script.php', { "file": file }, function(data) {
        // do something here after post complete
    }, 'json');
});

谢谢


我猜这个不会起作用,一个ajax上传器可能是你正在寻找的。 - Jishnu A P
4个回答

18

12

我尝试使用Ajax来接受文件,然后在提交时使用我的php文件存储文件。稍微修改了一下代码以使其正常工作。(上传的文件:PDF,JPG)

function verify1() {
    jQuery.ajax({
        type: 'POST',
        url:"functions.php",
        data: new FormData($("#infoForm1")[0]),
        processData: false, 
        contentType: false, 
        success: function(returnval) {
             $("#show1").html(returnval);
             $('#show1').show();
         }
    });
}

只需打印文件详细信息并检查即可。您将获得输出。如果出现错误,请告诉我。


-3

试试这个...

<script type="text/javascript">
      $("#form_oferta").submit(function(event) 
      {
           var myData = $( form ).serialize(); 
           $.ajax({
                type: "POST", 
                contentType:attr( "enctype", "multipart/form-data" ),
                url: " URL Goes Here ",  
                data: myData,  
                success: function( data )  
                {
                     alert( data );
                }
           });
           return false;  
      });
</script>

在这里,我们将contentType指定为multipart/form-data,就像在表单标签中一样,这将适用于上传简单文件。 在服务器端,您只需要编写简单的文件上传代码来处理此请求,并回显您想要向用户显示的消息作为响应。


-4

无论你如何分解,文件上传都不能以这种方式完成。如果你想进行ajax/async上传,我建议你考虑使用UploadifyValums等工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接