input+ajax+ashx多张图片上传

22 篇文章 0 订阅
7 篇文章 0 订阅

0x01 前端

<input id="File1" name="File1" type="file" accept="image/gif, image/jpeg,image/png,image/jpg" multiple="multiple"/>
<input type="button" name="save" id="save" value="点击保存" />

<script>
$("#save").click(function () {
        var filelength = document.getElementById("File1").files.length
        var file,file1 = null;
        if (filelength<1) {
            alert("请选择至少一张图片")
        } else if (filelength > 2) {
            alert("请选择至多两张图片")
        } else if (filelength==1) {
            file = document.getElementById("File1").files[0];
        } else if (filelength == 2) {
            file = document.getElementById("File1").files[0];
            file1 = document.getElementById("File1").files[1];
        }

        var strData = new FormData();
        strData.append("file", file);//第一张图片
        strData.append("file1", file1);//第二张图片

        $.ajax({
            type: "POST",
            url: "../../Handler/Business/EmissionsEntrust/EmissionsEntrustControlHandler.ashx",
            data: strData,
            processData: false,
            contentType: false,
            async: false,
            success: function (returnData) {
                //console.log(returnData);
                if (returnData.State=="y") {
                    alert(returnData.Info);
                } else {
                    alert(returnData.Info);
                }
            },
            error: function (returnData) {
                console.log(returnData);
            }
        });

 });
</script>

0x02 后台
HttpFileCollection files = context.Request.Files;
HttpPostedFile FileSave = files[0];  //用key获取单个文件对象HttpPostedFile
string imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + model.VIN;
string imgPath = "/Business/ManualJudge/Img/" + imgName + Path.GetExtension(FileSave.FileName);     //通过此对象获取文件名
string AbsolutePath = context.Server.MapPath(imgPath);
FileSave.SaveAs(AbsolutePath);              //将上传的东西保存

0x03 问题
如果需要上传两张图片,则需要在前台代码中增加三个变量用来接收<input id="file" type="file" multiple="multiple"/>的file,例如第一张图片var file1 = document.getElementById("file").files[0],第二张图片var file2 = document.getElementById("file").files[1]。
再使用var data = new FormData(); data.append("file1",file1); data.append("file2",file2);作为ajax的data参数值传递给后台ashx一般处理程序。
后台使用HttpFileCollection files = context.Request.Files;接收前台传递的文件(注:ajax的data中有几个input的file对象,后台才能接收几个file



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值