zoukankan      html  css  js  c++  java
  • html5文件上传

    htmL代码:
    1.        <div class="row">   
    2.       <input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();"/>  
    3.     </div>   
    4.     <div id="fileSize"></div>  
    5.     <div id="fileType"></div>  
    6.     <div class="row">  
    7.       <input type="button" onclick="uploadFile()" value="上传" />  
    8.     </div>  
    9.     <div id="progressNumber"></div>  
    10.                 <progress max="100" id="progre" value="0"></progress>  
    11.                 <br />  
    12.                 <asp:Image ID="Image1"  Style="max-130px" runat="server" />  
    13.                 <asp:HiddenField ID="hfimg" value="" runat="server" />  

    JS代码:
    1.       <script type="text/javascript">  
    2.         function fileSelected() {  
    3.             var file = document.getElementById('fileToUpload').files[0];  
    4.             if (file) {  
    5.                 var fileSize = 0;  
    6.                 if (file.size > 1024 * 1024)  
    7.                     fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';  
    8.                 else  
    9.                     fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';  
    10.   
    11.             
    12.                 document.getElementById('fileSize').innerHTML = '文件大小: ' + fileSize;  
    13.                 document.getElementById('fileType').innerHTML = '文件类型: ' + file.type;  
    14.             }  
    15.         }  
    16.   
    17.         function uploadFile() {  
    18.             var fd = new FormData();  
    19.             fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);  
    20.             var xhr = new XMLHttpRequest();  
    21.             xhr.upload.addEventListener("progress", uploadProgress, false);  
    22.             xhr.addEventListener("load", uploadComplete, false);  
    23.             xhr.addEventListener("error", uploadFailed, false);  
    24.             xhr.addEventListener("abort", uploadCanceled, false);  
    25.             xhr.open("POST", "/handler/h5upload.ashx");  
    26.             xhr.send(fd);  
    27.         }  
    28.   
    29.         function uploadProgress(evt) {  
    30.             if (evt.lengthComputable) {  
    31.                 var percentComplete = Math.round(evt.loaded * 100 / evt.total);  
    32.                 document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';  
    33.                 document.getElementById('progre').value = percentComplete;  
    34.             }  
    35.             else {  
    36.                 document.getElementById('progressNumber').innerHTML = 'unable to compute';  
    37.             }  
    38.         }  
    39.   
    40.         function uploadComplete(evt) {  
    41.             /* This event is raised when the server send back a response */   
    42.           var json =eval("("+ evt.target.responseText+")");  
    43.           if (json.status=="no") {  
    44.               alert(json.info);  
    45.           }else{  
    46.             document.getElementById("<%=Image1.ClientID%>").src = json.path;  
    47.             document.getElementById("<%=hfimg.ClientID%>").value = json.path;   
    48.           }  
    49.         }  
    50.   
    51.         function uploadFailed(evt) {  
    52.             alert("There was an error attempting to upload the file.");  
    53.         }  
    54.   
    55.         function uploadCanceled(evt) {  
    56.             alert("The upload has been canceled by the user or the browser dropped the connection.");  
    57.         }  
    58.     </script>  


    后台ashx代码:
    1.     context.Response.ContentType = "text/plain";  
    2.             HttpPostedFile  file =context. Request.Files["fileToUpload"];  
    3.             String fileName = file.FileName;  
    4.             String fileExt = Path.GetExtension(fileName).ToLower();  
    5.   
    6.             //定义允许上传的文件扩展名  
    7.             Hashtable extTable = new Hashtable();  
    8.             extTable.Add("image", "gif,jpg,jpeg,png,bmp");  
    9.             extTable.Add("flash", "swf,flv");  
    10.             extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");  
    11.             extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");  
    12.   
    13.             if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable["image"]).Split(','), fileExt.Substring(1).ToLower()) == -1)  
    14.             {  
    15.                 context.Response.Write(LitJson.JsonMapper.ToJson(new { status="no", info = "上传文件扩展名是不允许的扩展名。  
    16. 只允许" + ((String)extTable["image"]) + "格式。" }));  
    17.                        
    18.                 return;  
    19.             }  
    20.             string dirpath = "/upload/"+DateTime.Now.ToString("yyyyMMdd")+"/";  
    21.             if (!Directory.Exists(context.Server.MapPath( dirpath)))  
    22.             {  
    23.                 Directory.CreateDirectory(context.Server.MapPath(dirpath));  
    24.             }  
    25.             String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;  
    26.   
    27.             file.SaveAs(context.Server.MapPath(dirpath) + newFileName);  
    28.             context.Response.Write(LitJson.JsonMapper.ToJson(new { status="ok",path = dirpath+newFileName}));  

    浏览(505) | 评论(0) | 分类: javascript
  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/niunan/p/5310710.html
Copyright © 2011-2022 走看看