html <input type="file" name="files" multiple="multiple" /> 实现多图片上传,为什么只能接到一个图片,在后台(mvc)中如何接收  <p>
      <label>请选择一个图像文件:</label>
      <input type="file" multiple="multiple" id="demo_input" name="f[]" />
  </p>
  <div id="demo_result"></div>    <script type="text/javascript">
        var result = document.getElementById("demo_result");
        var input = document.getElementById("demo_input");        if (typeof FileReader === 'undefined') {
            result.innerHTML = "<p class='warn'>抱歉,你的浏览器不支持 FileReader</p>";
            input.setAttribute('disabled', 'disabled');
        } else {
            input.addEventListener('change', readFile, false);
        }        function readFile() {            for (var i = 0; i < this.files.length; i++) {
                var file = this.files[i];
                if (!/image\/\w+/.test(file.type)) {
                    alert("请确保文件为图像类型");
                    return false;
                }
                var reader = new FileReader();
                reader.readAsDataURL(file);
                reader.onload = function (e) {
                    result.innerHTML += '<img style="width:100px;height:100px" src="' + this.result + '" alt=""/>';
                    document.getElementById("h").value += this.result + '|';
                }
            }
        };
</script>

解决方案 »

  1.   

    IList<System.Web.HttpPostedFileBase> fileList = Request.Files.GetMultiple("文件名称");            foreach (System.Web.HttpPostedFileBase file in fileList)
                {
                             file.SaveAs();
                }
      

  2.   

    问题是传了三次图, fileList的count还是1
      

  3.   


    不明白你这个传了 3次 是什么意思 
    Request.Files.GetMultiple这个方法获取文件,界面代码应该有多个file控件。就类似这样
    <div>
    <input type='file' name='flie' >
    <input type='file' name='flie' >
    <input type='file' name='flie' >
    </div>
      

  4.   

    input控件的name属性很有意思,你那个file名字起的也很有意思,研究下吧。
      

  5.   

    javascript 跟你的 c#、java 都不一样。当你在for循环中定义一个var reader = .....的时候,实际上相当于你在 readFile 函数的第一行代码那里定义 var reader;
    也就说,在 javascript 中并不存在代码块局部定义的 reader 变量。因此如果你调试 reader,你会发现它“乱了、冲突了、唯一了”。实际上是你不了解 javascript 语言,同时你也没有在这个地方认真进行断点调试。
      

  6.   

    要想让代码块局部定义 reader,你可以把相关代码放到另外一个函数中,这样函数中的局部变量就能相互隔离了。
      

  7.   

    另外,在 javascript 中也不要胡乱使用“this”。当程序作用域进入一个回调子函数的时候,this 往往并不是在回调函数之外(之前)的this。javascript  中的 this不像c#或者 java 那样严谨。javascript并不是一个真正的面向对象编程语言,它只是一个“动态语言”。它的 this 是随便可以改变的,在调用任何函数的时候都可以由调用者随便改变。于是当你注册一个回调给某个方法,而这个方法又调用了其它方法,其它方法又调用了其它方法,最后回调你的函数时,你的函数中的this可能根本不是你原来以为的 this 了。在 javascript 中要注意不要在子函数中再用this,而是应该在子函数作为参数注册给任何函数之前先定义局部变量(例如经常定义一个self、me 为名的新变量),然后在子函数内使用这个新的自定义变量。不要滥用 this。javascript不是一个合格的面向对象编程语言,不要用规范来看待它。