.net多张图片上传并且预览

 首先在html页面添加一个添加按钮加上点击事件app();


<input type="button" value="添加图片" onclick="app();" id="btnInsertImg" />

然后在 <script type="text/javascript">里写一个app()方法,这里写一个计数器使预览div的id每张图片都不同

var imgIndex = 1;//计数器
function app() {
            $("#imgContainer").append("<div><div style=\"margin-top:10px;\">" +
                "<input type=\"file\" name=\"file\" onchange=\"javascript:setImagePreview(this,"+imgIndex+");\"/>" +
            "<input type=\"button\" value=\"删除\" onclick=\"delfile(this)\" />" +
            "<input type=\"button\" value=\"上移\" onclick=\"up(this)\" />" +
            "<input type=\"button\" value=\"下移\" onclick=\"down(this)\" />" +
            "</div>"+
            "<div id=\"localImag_"+imgIndex+"\">"+
            "<img id=\"preview_" + imgIndex + "\" alt=\"\"  />" +
            "</div></div>");
            imgIndex++;
        }

app()方法里用到setImagePreview(),这里注意要把计数器imgIndex传过来。

        function setImagePreview(obj, index) {
            var array = new Array('gif', 'jpeg', 'png', 'jpg', 'bmp'); //可以上传的文件类型
            if (obj.value == '') {
                $.messager.alert("让选择要上传的图片!");
                return false;
            }
            else {

               var localImagId = document.getElementById("localImag_" + index);
               var imgObjPreview = document.getElementById("preview_" + index);
                var fileContentType = obj.value.match(/^(.*)(\.)(.{1,8})$/)[3]; //这个文件类型正则很有用 
                布尔型变量
                var isExists = false;
                //循环判断图片的格式是否正确
                for (var i in array) {
                    if (fileContentType.toLowerCase() == array[i].toLowerCase()) {
                        //图片格式正确之后,根据浏览器的不同设置图片的大小
                        if (obj.files && obj.files[0]) {
                            //火狐下,直接设img属性 
                            imgObjPreview.style.display = 'block';
                            imgObjPreview.style.width = '100px';
                            imgObjPreview.style.height = '100px';
                            //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式 
                            imgObjPreview.src = window.URL.createObjectURL(obj.files[0]);
                        }
                        else {
                            //IE下,使用滤镜 
                            obj.select();
                            var imgSrc = document.selection.createRange().text;
                            //必须设置初始大小 
                            localImagId.style.width = "100px";
                            localImagId.style.height = "100px";
                            //图片异常的捕捉,防止用户修改后缀来伪造图片 
                            try {
                                localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                                localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
                            }
                            catch (e) {
                                $.messager.alert("您上传的图片格式不正确,请重新选择!");
                                return false;
                            }
                            imgObjPreview.style.display = 'none';
                            document.selection.empty();
                        }
                        isExists = true;
                        return true;
                    }
                }
                if (isExists == false) {
                    $.messager.alert("上传图片类型不正确!");
                    return false;
                }
                return false;
            }
        }

删除,上移,下移方法

function delfile(obj) {
            $(obj).parent().parent().remove();
        }

        function up(obj) {
            $(obj).parent().prev().before($(obj).parent());
        }

        function down(obj) {
            $(obj).parent().next().after($(obj).parent());
        }

效果图

点击添加图片 

点击选择文件 

 添加多张

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ASP.NET MVC框架提供了多种方法来实现一次上传多张图片的功能。 一种常见的方法是在前端使用HTML5的文件选择控件来实现多文件上传。在HTML页面中,我们可以使用<input type="file" multiple/>来创建一个文件上传控件,multiple属性表示可以选择多个文件。当用户选择了多张图片后,这些图片会被封装成一个FileList对象,我们可以通过JavaScript将FileList对象传递给后端。 在后端,我们可以使用ASP.NET MVC的控制器来处理这些上传图片。在控制器的方法中,我们可以通过参数绑定来接收上传的文件。可以使用HttpPostedFileBase类型的数组来接收多个文件,并通过循环遍历每个文件进行处理。对于每个文件,我们可以使用其FileName属性获取文件名,使用SaveAs方法保存文件到服务器指定的路径。 另一种方法是使用第三方插件或库来简化多文件上传的实现。例如,可以使用FineUploader、Dropzone.js等插件来实现多文件上传的功能。这些插件提供了专门的JavaScript API和样式来处理文件上传操作,并且可以与ASP.NET MVC框架无缝集成。 总体而言,实现ASP.NET MVC一次上传多张图片的功能可以通过HTML5的文件选择控件及其API,或使用第三方插件来实现。无论使用哪种方法,我们都需要在前端进行多文件选择和上传操作,并在后端控制器中接收和处理上传的文件。当然,为了确保上传的文件不会超过服务器的负载能力,我们还可以在前端和后端进行一些限制和校验,比如限制上传文件的数量和大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值