FileUpload控件

属性:
FileName: 获取上传的文件名


HasFile: 是否选择(存在)上传的文件


ContentLength: 获得上窜文件的大小,单位是字节(byte)

 

方法:
Server.MapPath(): 获取服务器上的物理路径

SaveAs(): 保存文件到指定的文件夹

 

注意:默认情况下限制上传文件大小为4MB,通过web.config.comments(这个设置是全局的配置)可以修改其默认设置
或者通过修改web.config文件来改变应用程序上传限制.

 

如:
  

Xml代码 复制代码
  1. <httpRuntime maxRequestLength="10240" executionTimeout="150" enable="true"/>  

 
元素解释:
maxRequestLength: 设置上传文件大小,单位是kb.

 

executionTimeout: 允许执行请求的最大秒数,此功能必须在Compilation元素中Debug属性为false时才生效.

 

enable: 指定是否在当前的节点及子节点级别启用应用程序域 (AppDomain),以接受传入的请求。如果为 False,则实际上关闭了该应用程序。默认值为 True.
通俗的说就是:是否允许用户访问该网站(是否允许Http请求)

 

注意:如果上传文件超过maxRequestLength大小,会出现页面无法显示的情况.

 

如:

 

 

检查文件上传类型:
1).客户端检查(javascript实现)


2).服务器端检查

 

示例:

界面参考:

   javascript:

  

Js代码 复制代码
  1. function checkType(){   
  2.      
  3.   //得到上传文件的值   
  4.   var fileName=document.getElementById("FileUpLoad1").value;   
  5.      
  6.   //返回String对象中子字符串最后出现的位置.   
  7.   var seat=fileName.lastIndexOf(".");   
  8.     
  9.   //返回位于String对象中指定位置的子字符串并转换为小写.   
  10.   var extension=fileName.substring(seat).toLowerCase();   
  11.     
  12.   //判断允许上传的文件格式   
  13.   //if(extension!=".jpg"&&extension!=".jpeg"&&extension!=".gif"&&extension!=".png"&&extension!=".bmp"){   
  14.   //alert("不支持"+extension+"文件的上传!");   
  15.   //return false;   
  16.   //}else{   
  17.   //return true;   
  18.   //}   
  19.      
  20.   var allowed=[".jpg",".gif",".png",".bmp",".jpeg"];   
  21.   for(var i=0;i<allowed.length;i++){   
  22.       if(!(allowed[i]!=extension)){   
  23.           return true;   
  24.       }   
  25.   }   
  26.   alert("不支持"+extension+"格式");   
  27.   return false;   
  28. }  

 

 

     .aspx:

Html代码 复制代码
  1. <html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head runat="server">  
  3.     <title>无标题页</title>  
  4. </head>  
  5. <body>  
  6.     <form id="form1" runat="server">  
  7.     <div>  
  8.         <asp:FileUpload ID="FileUpLoad1" runat="server" />  
  9.         <br />  
  10.         <asp:Button ID="btnFileUpload" runat="server"    
  11.         OnClick="btnFileUpload_Click" Text="文件上传"  
  12.         OnClientClick="return checkType()" />  
  13.         <asp:Label ID="lblMessage" runat="server"></asp:Label>  
  14.     </div>  
  15.     </form>  
  16. </body>  
  17. </html>  
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpLoad1" runat="server" />
        <br />
        <asp:Button ID="btnFileUpload" runat="server" 
        OnClick="btnFileUpload_Click" Text="文件上传"
        OnClientClick="return checkType()" />
        <asp:Label ID="lblMessage" runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>

 

  .aspx.cs:

 

C#代码 复制代码
  1. //文件上传按钮click事件   
  2.     protected void btnFileUpload_Click(object sender, EventArgs e)   
  3.     {   
  4.   
  5.         if (FileUpLoad1.HasFile)   
  6.         {   
  7.             //判断文件是否小于10Mb   
  8.             if (FileUpLoad1.PostedFile.ContentLength < 10485760)   
  9.             {   
  10.                 try  
  11.                 {   
  12.                     //上传文件并指定上传目录的路径   
  13.                     FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")   
  14.                         + FileUpLoad1.FileName);   
  15.                     /*注意->这里为什么不是:FileUpLoad1.PostedFile.FileName  
  16.                     * 而是:FileUpLoad1.FileName?  
  17.                     * 前者是获得客户端完整限定(客户端完整路径)名称  
  18.                     * 后者FileUpLoad1.FileName只获得文件名.  
  19.                     */  
  20.   
  21.                     //当然上传语句也可以这样写(貌似废话):   
  22.                     //FileUpLoad1.SaveAs(@"D:/"+FileUpLoad1.FileName);   
  23.   
  24.                     lblMessage.Text = "上传成功!";   
  25.                 }   
  26.                 catch (Exception ex)   
  27.                 {   
  28.                     lblMessage.Text = "出现异常,无法上传!";   
  29.                     //lblMessage.Text += ex.Message;   
  30.                 }   
  31.   
  32.             }   
  33.             else  
  34.             {   
  35.                 lblMessage.Text = "上传文件不能大于10MB!";   
  36.             }   
  37.         }   
  38.         else  
  39.         {   
  40.             lblMessage.Text = "尚未选择文件!";   
  41.         }   
  42.     }  

客户端用javascript获取文件大小

 

实现代码如下:

<script type="text/javascript" language="javascript">
    function getFileSize(fileName)
    { 
       if(document.all)//判断是否是IE浏览器
       { 
          window.oldOnError = window.onerror;         
          window.onerror = function(err)  
          { 
              if(err.indexOf('Automation')!=-1)
              { 
                 alert('没有访问文件的权限');                 
                 return true;             
              }           
              else
              {   
                 return false;
              }         
           } 
        var fso = new ActiveXObject('Scripting.FileSystemObject'); 
        var file = fso.GetFile(fileName);         
        window.onerror = window.oldOnError; 
        return file.Size;
        }
    } 
    </script>
【常见问题】Automation 服务器不能创建对象
【解决方法】
 第一步:浏览器-->工具-->Internet选项-->安全-->Internet的自定义级别-->安全级别设为"中",启用"对没有标记为安全的ActiveX控件进行

初始化和脚本运行"
 第二步:接第一步选择"受信任的站点"-->站点-->去掉要求进行"服务器验证(https:)"前面的勾,然后添加运行上面js代码的站点到受信任的区

域,例如:http://localhost
 另外:如果用户遇到不能修改IE中Internet选项的安全级别时,解决方法是先打开注册表编辑器,找

"HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/Zones/3"分支,在右侧窗口中将"MinLevel"修改为"10000"(十六进制)后就可以在IE属性中设置较低的安全级别了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值