码迷,mamicode.com
首页 > Web开发 > 详细

关于js上传文件的校验以及预览

时间:2016-07-29 17:13:35      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

花了一上午的时间理了下思路,整理了下上传方面的问题。主要是关于格式的校验以及大小和数量的校验,可能有部分缺失,望大家提出,及时修正。

<!DOCTYPE html>
<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>文件上传测试</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            a{
                text-decoration: none;
            }
            .filec{
                display: block;
                position: absolute;
                top: 0;
                left: 0;
                width: 180px;
                height: 39px;
                cursor: pointer;
                opacity: 0;
                filter:alpha(opacity: 0);
            }
            .xhx{
                width: 100px;
                height: 30px;
                border-bottom: 1px solid #000;
                display: inline-block;
                line-height: 24px;
            }
            .button{
                width: 80px;
                height: 39px;
                line-height: 39px;
                border: 0;
                border-radius: 3px;
            }

        </style>
    </head>

    <body>
            <div class="xhx" id="xhx">
                请上传文件
            </div>
            <input type="button" class="button" name="" id="" value="点我上传" />
        <input type="file" class="filec" name="test" id="file" onchange="javascript:setImagePreview();">
        <div id="imgxx"></div>
        <script type="text/javascript">
            //单图片上传
            function setImagePreview() {
                var path = document.getElementById("file").value;
                //            alert(path);
                //            分离名称和后缀
                var path1 = path.split(".");
                var path2 = path1[path1.length - 1].toLowerCase()
                    //            判断格式
                if(path2.localeCompare(‘docx‘) === 0 || path2.localeCompare(‘doc‘) === 0 || path2.localeCompare(‘pdf‘) === 0) {
                    //                alert("true");
                    //                alert(path2);
                    //            去除路径和后缀名,取文件名称
                    var pos1 = path.lastIndexOf("\\");
                    //            alert(pos1);
                    var pos2 = path.lastIndexOf(".");
                    //            alert(pos2);
                    var pos = path.substring(pos1 + 1, pos2);
                    var text =path.substring(pos1+1);
                    document.getElementById("xhx").innerHTML=text;
                    alert("上传成功");
                    //            alert(pos);
                    //            获取文件地址  本地预览
                    var file = document.getElementById("file");
                    var objectURL = window.URL.createObjectURL(file.files[0]);
//                    alert(objectURL);
                } else if(path2.localeCompare(‘jpg‘) === 0 || path2.localeCompare(‘png‘) === 0) {
                    var pos1 = path.lastIndexOf("\\");
                    //            alert(pos1);
                    var pos2 = path.lastIndexOf(".");
                    //            alert(pos2);
                    var pos = path.substring(pos1 + 1, pos2);
//                    alert("上传成功");
                    var file = document.getElementById("file");
                    var objectURL = window.URL.createObjectURL(file.files[0]);
//                    alert(objectURL);
                    //            判断大小
                    //             var obj_img = document.getElementById(‘tempimg‘);  
                    //           obj_img.dynsrc=obj_file.value;  
                    filesize = file.files[0].size;
//                    alert(filesize);
                    var imgmax = 2 * 1024 * 1024;
                    if(filesize > imgmax) {
                        alert("文件大小超出范围");
                    } else {
                        alert("上传成功");
                        //            创建图片元素
                        var imgxx = document.getElementById("imgxx");
                        //            添加img
                        var img = document.createElement("img");
                        var div = document.createElement("div");
                        img.setAttribute("id", pos); 
                        div.setAttribute("id", pos);
                        imgxx.appendChild(img);
                        imgxx.appendChild(div);
                        div.innerHTML=‘<a title="移除本图片" href="javascript:void(0);" style="float: left;margin-left: -22px;z-index: 22;background: #fff;">×</a>‘
                        img.width = "100";
                        img.src = objectURL;
                        img.style.float="left"
                        img.style.marginLeft="20px"
                        div.setAttribute("onclick", "javascript:removeElement(this)");   
                        var imglength = document.getElementById("imgxx").getElementsByTagName("img").length ;
//                        alert(imglength);
                        if(imglength>3){
                            alert("上传完毕");
                            file.style.display="none";
//                            alert(file.display);
                        }
                    }
                } else {
                    alert("请上传正确的格式");
                }
            }
//            删除图片
            function removeElement(_element){
         var _parentElement = _element.parentNode;
         var id=_element.id;
         document.getElementById(id).innerHTML = "";
         document.getElementById(id).remove();
         document.getElementById(id).remove();
         file.value = "";
         return;
}
        </script>
    </body>
</html>

  

 

关于js上传文件的校验以及预览

标签:

原文地址:http://www.cnblogs.com/mr-ljb/p/5718992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!