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 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services