唱山歌的小修修 2016-01-08 06:05 采纳率: 100%
浏览 2162
已采纳

jQuery传递数据同时上传文件到php后台的问题

各位大神们好,我是一名学生正在自学编程,一段手机上传图片程序如下:
1.前端有一个上传框,上传图片后会自动生成预览图
2.如下程序是部分js文件,一些无关的代码已经删掉了,
3.后台post.php页面用post方法或者file方法都收不到上传的文件,text文本数据可以收到
4.前端有获得 $("#picture").val() 的代码,我这个js是不是没有把文件传成功啊?少了点什么呢? 预览图可以正常生成!求大神们指点一二,小弟感激不尽!

 function postTopic()
{
    var cid = $('#cid').val();

    if( parseInt(cid) < 1 )
    {
        alert("请选择分类");

        $('#cid').focus();

        return false;
    }

    var msg = $.trim($('textarea[name=message]').val());

    if( msg.length > 500 )
    {
        $('textarea[name=message]').focus();

        return false;
    }

    var picture = "";

    if( $("#picture").val() == "" )
    {
        if( msg.length < 1 )
        {
            $('textarea[name=message]').focus();

            return false;
        }
    }
    else
    {
        picture = $("#previewImg").attr("src");
    }

    $(".loading").show();

    $("#add-topic-form").hide();

    $.post("post.php",{"do":"addTopic","cid":cid,"msg":msg,"picture":$("#picture").val()},function(data)
    {
     if (data.result == "success")
    {
        //无关代码
    },"json");

    return false;
}
  • 写回答

3条回答 默认 最新

  • 斯洛文尼亚旅游 2016-01-08 06:34
    关注

    jquery.form.js这个插件,会帮你处理文件(如果支持H5的FormData就用这个,否则iframe模拟),文件你直接用"picture":$("#picture").val()这样获取到的是文件名称,不是文件2进制数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。
  • ¥40 宿舍管理系统设计(c#)
  • ¥15 MATLAB卫星二体模型仿真
  • ¥15 怎么让数码管亮的同时让led执行流水灯代码
  • ¥20 SAP HANA SQL Script 。如何判断字段值包含某个字符串