mengmeng_boy 2018-10-31 01:53 采纳率: 0%
浏览 1640
已结题

formdata 上传文件 后台ashx 怎么获取不到文件 帮忙看看什么问题

后台ashx 怎么获取不到文件 帮忙看看什么问题

    var d = new FormData($("#file")[0]);

        $.ajax({
            url: '/Admin/Handlers/DocManage.ashx/?type=img_upload',
            type: 'post',
            data: d,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {

            },
            error: function (data) {

            }
        });




            public string img_upload()
    {
        HttpContext context = HttpContext.Current;
        Entity.doc doc = new Entity.doc();
        long c = context.Request.InputStream.Length;
        System.Drawing.Image image = System.Drawing.Image.FromStream(context.Request.InputStream); 
        string name = doc.id+"_"+DateTime.Now.ToString("yyyyMMddHHmmssfff")+"_"+Common.Utils.BuildRandomStr(32);//重新命名图片
        image.Save(context.Server.MapPath("/image/" + name),System.Drawing.Imaging.ImageFormat.Jpeg);//保存为jpg格式
        image.Dispose();//释放
        doc.cover = "image/" + name;//新图片


        return "ok";

    }
  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2018-10-31 03:02
    关注

    FormData的参数为表单,不能直接是file对象。有些浏览器还会报错直接传递输入对象而不是表单

    chrome没报错,但是控制台看没有提交数据。就算提交了数据,Request.InputStream是所有的数据,除了文件内容,还包含文件描述,分隔符之类的内容,直接存这些内容也会出错,图片打开不了

    var d = new FormData($("#file")[0]);
    改为

     var d = new FormData();
    d.append('file',$("#file")[0].files[0])
    

    服务器端

     HttpPostedFile f = context.Request.Files["file"];
    

    参考:html5 ajax上传文件asp.net示例

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题