var i = 1;
        function addFile() {
            if (i < 8) {
                var str = '<div><input type="file" name="File" runat="server" /> 描述:<input name="text" type="text" maxlength="20" /><input type="button" class="x" onclick="deleteFile(this)" value="X" /></div>';
                document.getElementById('MyFile').insertAdjacentHTML("beforeEnd", str);
                i++;
            }
            else {
                alert("您一次最多只能上传8张图片!");
            }
        }
        function deleteFile(current) {
            i--;
            current.parentNode.parentNode.removeChild(current.parentNode);
        }
 <tr>
                <td>
                    <span class="lblxian">请选择图片:</span>
                </td>
                <td>
                    <input id="File" type="file" runat="server" />
                    描述:<input id="img" name="text" type="text" maxlength="20" />
                </td>
            </tr>
            <tr id="MyFile">
                <td>
                    <input onclick="addFile()" type="button" value="增加图片(Add)" />
                </td>
            </tr>今上午才问了如何减少图片,
现在问下,如何验证图片的大小和格式啊?
主要是 图片的数量不固定,我弄了半天也弄不出来,求大神们帮助JavaScript验证多张图片的大小,格式jquery

解决方案 »

  1.   

    图片的格式可以通过input的value获得文件名,解析出扩展名得到
    文件大小js无法获得,只能服务器收到文件后才能从服务端获得。
    如果这个需求是必要的,可以找一个flash上传插件,flash可以在客户端判断文件大小
      

  2.   


    现在我连如何获取每个input的value都无法实现,应该如何去获取?
      

  3.   

    就是里面写
     var str = '<div><input type="file" name="File" runat="server" />是无效的动态添加的控件,在服务器端遍历即可
    or (int i = 0; i < Request.Files.Count; i++)
                {
                    if (Request.Files[i].ContentLength > 0)
                    {
                        filePath = Request.Files[i].FileName;
                        sb.Append("Files" + ++attCount + ": " + filePath + "<br>");
                        Request.Files[0].SaveAs(Server.MapPath("./") + filePath.Substring(filePath.LastIndexOf("\\") + 1));
                    }
                }
      

  4.   

    1.格式获取,通过input type="file"这个控件的value值得到本地路径,然后js分割下这个串,就得到后缀名了
     var attach_ext = ImgPath.substr(ImgPath.lastIndexOf('.') + 1, ImgPath.length).toLowerCase();//后缀名
                        if (!in_array(attach_ext, ['jpg', 'jpeg', 'gif', 'png', 'bmp'])) {
                            alert("图片格式不正确!")
                            return false;
                        }
     function in_array(str, a) {
                for (var i = 0; i < a.length; i++) {
                    if (str == a[i]) return true;
                }
                return false;
            }     2.如何得到图片大小呢?因为你这个只限定了图片,所以非常好判断。你new个 Image然后得到这个对象的大小就行
    var ImgObj = new Image();
    ImgObj.src="C:\fsfs.jpeg"
    ImgFileSize = Math.round(ImgObj.fileSize / 1024 * 100) / 100; //取得图片文件的大小可以参考网址 js操作图片的方法
    http://www.58mb.com/info/design/Javascript/008541623282.html
      

  5.   

    http://mt.b3log.org/articles/2013/01/24/1358995229104.html
    JS验证上传文件大小、文件名