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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条