SAL

  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

vs2005/.NET2.0 控件演示之 文件上传FileUpload

Posted on 2006-12-09 16:20  SAL  阅读(274)  评论(0编辑  收藏  举报
以前在2003的时候这个控件是做在HTML里面的,要弄就得麻烦鼠标由键转成服务器控件,不知道怎么想起的,现在又做到服务器标准控件里面了,而且在属性和方法上也有很合人意的改动,不错,大家可以分享下,当然也可以看下感觉还是不错,挖哈哈!!
以前用2003做个一个,地址是,http://thcjp.cnblogs.com/archive/2006/03/14/350143.html

前台HTML代码
<--Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        以前在2003的时候这个控件是做在HTML里面的,要弄就得麻烦鼠标由键转成服务器控件,不知道怎么想起的,现在又做到服务器标准控件里面了,而且在属性和方法上也有很合人意的改动,不错,大家可以分享下,当然也可以看下感觉还是不错,挖哈哈!!<br />
        以前用2003做个一个,地址是,http://thcjp.cnblogs.com/archive/2006/03/14/350143.html<br />
        <br />
        这个没有什么好说的,就一个例题,<br />
        <asp:FileUpload ID="FileUpload1" runat="server" />&nbsp;
        <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" /><br />
        <asp:Label ID="Label1" runat="server"></asp:Label></div>
    </form>
</body>
</html>

后台CS代码
<--Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
  {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string fullname = FileUpload1.FileName.ToString();//这个属性是以前2003没有的,也许是我没注意看,反正现在我才第一次用!直接取得文件名
        string url = FileUpload1.PostedFile.FileName.ToString();//这个是以前2003用的,先取得全部的上传文件路径个名字,然后再利用SubString方法来得到用户名,现在看来是没有必要了
        string typ = FileUpload1.PostedFile.ContentType.ToString();//获取文件MIME内容类型
        string typ2 = fullname.Substring(fullname.LastIndexOf(".")+1);//获取文件名字 . 后面的字符作为文件类型
        string size=FileUpload1.PostedFile.ContentLength.ToString();
        
        //下面是保存了,我们来个判断,只能上穿传那些文件吧!如果用typ可控制其上传的“内码”,安全性更高!
     if (typ2 == "gif" || typ2 == "jpg" || typ2 == "bmp" || typ2 == "png")
        {
           FileUpload1.SaveAs(Server.MapPath("up")+"\\"+fullname);//将文件保存在跟目录的UP文件夹下
            Label1.Text = ("你上传了一个名为" + fullname + ",MIME内容类型为[" + typ + "],后缀名为[" + typ2 + "],共[" + size + "]字节大小的文件<br>已经保存在了你的UP目录中了,如果你是用VS2005,请刷新你的目录哦!!");
        }
        else
        {
            Label1.Text = "我说你都上传了些什么东西?";
        }
    }
}