论坛首页 编程语言技术论坛

Asp.Net文件上传之简单文件上传(上)

浏览 64160 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-10   最后修改:2009-05-22

FileUpload控件

 

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


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


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

 

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

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

 

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

 

如:
  

<httpRuntime maxRequestLength="10240" executionTimeout="150" enable="true"/>

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

 

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

 

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

 

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

 

如:

 

 

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


2).服务器端检查

 

示例:

界面参考:

   javascript:

  

  function checkType(){
    
    //得到上传文件的值
    var fileName=document.getElementById("FileUpLoad1").value;
    
    //返回String对象中子字符串最后出现的位置.
    var seat=fileName.lastIndexOf(".");
   
    //返回位于String对象中指定位置的子字符串并转换为小写.
    var extension=fileName.substring(seat).toLowerCase();
   
    //判断允许上传的文件格式
    //if(extension!=".jpg"&&extension!=".jpeg"&&extension!=".gif"&&extension!=".png"&&extension!=".bmp"){
    //alert("不支持"+extension+"文件的上传!");
    //return false;
    //}else{
    //return true;
    //}
    
    var allowed=[".jpg",".gif",".png",".bmp",".jpeg"];
    for(var i=0;i<allowed.length;i++){
        if(!(allowed[i]!=extension)){
            return true;
        }
    }
    alert("不支持"+extension+"格式");
    return false;
  }

 

 

     .aspx:

<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:

 

//文件上传按钮click事件
    protected void btnFileUpload_Click(object sender, EventArgs e)
    {

        if (FileUpLoad1.HasFile)
        {
            //判断文件是否小于10Mb
            if (FileUpLoad1.PostedFile.ContentLength < 10485760)
            {
                try
                {
                    //上传文件并指定上传目录的路径
                    FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")
                        + FileUpLoad1.FileName);
                    /*注意->这里为什么不是:FileUpLoad1.PostedFile.FileName
                    * 而是:FileUpLoad1.FileName?
                    * 前者是获得客户端完整限定(客户端完整路径)名称
                    * 后者FileUpLoad1.FileName只获得文件名.
                    */

                    //当然上传语句也可以这样写(貌似废话):
                    //FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);

                    lblMessage.Text = "上传成功!";
                }
                catch (Exception ex)
                {
                    lblMessage.Text = "出现异常,无法上传!";
                    //lblMessage.Text += ex.Message;
                }

            }
            else
            {
                lblMessage.Text = "上传文件不能大于10MB!";
            }
        }
        else
        {
            lblMessage.Text = "尚未选择文件!";
        }
    }

 

  • 大小: 52.3 KB
  • 大小: 6.2 KB
   发表时间:2009-07-28  
if(!(allowed[i]!=extension)){  
    return true;  
}
这代码写的...
0 请登录后投票
   发表时间:2009-12-19  
楼主在考虑真和假的时候,喜欢多转几个弯弯
1 请登录后投票
   发表时间:2009-12-23  
上写的还是很详细的,
但是不支持大文件上传。

怎么没有(下)?
期待下。。。。。。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics