开发者社区> 问答> 正文

JQuery 如何传递input file的内容至PHP进行处理

通过下列代码,我已经获取了 filemeta 也就是被选中的那个文件。

    $('#coverfile').on('change', '', function() {
        var filemeta = $('#coverfile').prop('files')[0];
    });

然后我有一个btn按钮,需要通过点击后ajax的方式传递这个被选中的图片,然后在php文件中进行处理。
但是我不知道应该怎么去传递这个获取过来的filemeta

本来我想传递base64过去的,因为预览图片我使用的是转换为base64进行预览的,但是这个转换后的字节太大了,php文件字节报500错误,所以我得换个办法...

展开
收起
小旋风柴进 2016-05-30 13:45:12 2081 0
1 条回答
写回答
取消 提交回答
  • 用FormData对象提交。注意IE只有版本10以上支持。

    FormData对象怎么来呢,有两种方法。

    方法一:表单就是FormData
    HTML代码:

    <form id="fileform">
        <input type="file" name="file">
    </form>

    JS代码:

    var formElement = document.getElementById("fileform");
    //jQuery可以像这样:
    //var formElememt = $("#fileform")[0];
    var formData = new FormData(formElement);

    方法二:自己构造
    HTML代码:

    <input type="file" id="file">

    JS代码:

    var fileInput = document. getElementById("file");
    //用jQuery可以这样:
    //var fileInput=$("#file")[0];
    var file = fileInput.files[0];    //获得File对象(也就是你那个filemeta),这里文件是单选的,如果是多选的需要遍历fileInput.files属性来获取每一个文件
    var formData = new FormData();
    formData.append("file", file);    //FormData对象的append方法第一个参数相当于input的name属性,第二个参数就是value,可以是File对象
    用jQuery发送请求
    全选复制放进笔记$.ajax({
        type: "POST",    //必须POST
        url: "http://example.com",    //接收请求的URL
        processData: false,    //必须设置
        contentType: false,    //必须设置
        data: formData    //直接把formData对象作为data属性的值发送
        //其他参数参数自行设置
    })
    2019-07-17 19:20:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载