js多圖片上傳--一次性上傳多張

適用各種版本的多圖片上傳,如果ie上測試有問題那就可能是ie設置有問題

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head lang="en">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
        *{margin: 0px;padding: 0px;}
        .a-upload {
            float: left;
            padding: 4px 10px;
            height: 20px;
            line-height: 20px;
            position: relative;
            cursor: pointer;
            color: white;
            background: #00b7ee;
            border: 1px solid #ddd;
            border-radius: 4px;
            overflow: hidden;
            display: inline-block;
            *display: inline;
            margin: 10px;
            *zoom: 1;
        text-decoration: none;
        }
        .a-upload  input {
            position: absolute;
            font-size: 100px;
            right: 0;
            top: 0;
            opacity: 0;
            filter: alpha(opacity=0);
            cursor: pointer
        }
        .a-upload:hover {
            color: white;
            background: #00b7ee;
            border-color: #ccc;
            text-decoration: none
        }
    </style>
</head>
<body>
<div style="margin :0px auto; width:990px;float: left;">
    <a href="javascript:;" class="a-upload">
        <input type="file" name="file" id="doc" multiple="multiple" οnchange="javascript:setImagePreviews();" accept="image/*" />點擊這裏上傳文件
    </a>
    <div id="dd" style=" width:990px;float: left;"></div>
</div>
</body>
<script type="text/javascript">
//下面用於多圖片上傳預覽功能
function setImagePreviews(avalue) {
    var docObj = document.getElementById("doc");
    var dd = document.getElementById("dd");
    dd.innerHTML = "";
    var fileList = docObj.files;
    for (var i = 0; i < fileList.length; i++) {
        dd.innerHTML += "<div style='float: left;margin-top: 10px;' > <img id='img" + i + "'  /> </div>";
        var imgObjPreview = document.getElementById("img"+i);
        if (docObj.files && docObj.files[i]) {
        //火狐下,直接設img屬性
        // imgObjPreview.style.display = 'block';
            imgObjPreview.style.width = '160px';
            imgObjPreview.style.height = '130px';
            imgObjPreview.style.margin = '5px';
            imgObjPreview.style.borderRadius = '5px';
                //imgObjPreview.src = docObj.files[0].getAsDataURL();
                //火狐7以上版本不能用上面的getAsDataURL()方式獲取,需要一下方式
            imgObjPreview.src = window.URL.createObjectURL(docObj.files[i]);
        }
        else {
               //IE下,使用濾鏡
            docObj.select();
            var imgSrc = document.selection.createRange().text;
            var localImagId = document.getElementById("img" + i);
                //必須設置初始大小
            localImagId.style.width = "160px";
            localImagId.style.height = "130px";
            imgObjPreview.style.margin = '5px';
            imgObjPreview.style.borderRadius = '5px';
                //圖片異常的捕捉,防止用戶修改後綴來僞造圖片
            try {
                localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
            }
            catch (e) {
                alert("您上傳的圖片格式不正確,請重新選擇!");
                return false;
            }
            imgObjPreview.style.display = 'none';
            document.selection.empty();
        }
    }
        return true;

}
</script>

</html>
  


實現樣式爲:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章