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
  • 相关阅读:
    打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
    基于 Windows Server 2008 的计算机对 Microsoft Dynamics CRM 4.0 的支持
    Microsoft Dynamics CRM 4.0 如何添加自定义按钮
    Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
    C# 中的 enum(枚举) 类型使用例子
    vue事件的绑定
    表单验证2
    node中模块
    node模块的引入
    node中的读文件
  • 原文地址:https://www.cnblogs.com/niunan/p/5310710.html
Copyright © 2011-2022 走看看