原文地址:http://www.chuncui.cn/gege/blogview.asp?id=144&page=1
欢迎光临俺的小窝:http://www.chuncui.cn/
最近学习C#.NET的WEB编程,看了一些上传文件的例子,就动手写了一个东东,写的不好,见笑了!
项目共有两个文件:一个页面(index.aspx) + 一个类(tools.cs)
index.aspx的代码:
<%@ Page language="c#" Codebehind="index.aspx.cs" AutoEventWireup="false" Inherits="upfiles.index" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>index</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="0" align="center">
<TR align="center">
<TD colspan="2" style="HEIGHT: 30px">上传文件(仅支持:GIF/JPG/BMP)</TD>
</TR>
<TR>
<TD style="WIDTH: 204px; HEIGHT: 34px"><INPUT type="file" id="File1" name="File1" runat="server"></TD>
<TD style="HEIGHT: 34px" align="center">
<asp:Button id="BTN_upload" runat="server" Text="上传" Width="58px"></asp:Button></TD>
</TR>
<TR>
<TD colspan="2" align="center">
<asp:Label id="LBL_txt" runat="server" Width="285px" Height="32px">Label</asp:Label>
</TD>
</TR>
<TR align="center">
<TD colspan="2" style="HEIGHT: 30px">
<asp:Image id="Image1" runat="server" Width="150px" Height="200px"></asp:Image></TD>
</TR>
</TABLE>
</FONT>
</form>
</body>
</HTML>
只有三个组件:
Label LBL_txt; ----显示上传成功信息
HtmlInputFile File1; ----不用说了吧
Image Image1; ----显示上传的图片文件
Button BTN_upload; ----也不用说了吧
后台 index.aspx.cs代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace upfiles
{
/// <summary>
/// index 的摘要说明。
/// </summary>
public class index : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label LBL_txt;
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
protected System.Web.UI.WebControls.Image Image1;
protected System.Web.UI.WebControls.Button BTN_upload;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Page.IsPostBack!=true)
{
this.LBL_txt.Text="";
this.Image1.Visible=false;
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.BTN_upload.Click += new System.EventHandler(this.BTN_upload_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void BTN_upload_Click(object sender, System.EventArgs e)
{
//fullname为文件的全路径+名称
string fullname=this.File1.PostedFile.FileName.ToString();
tools filename=new tools();
//判断是否为空
int ifnull=filename.judgeifnull(fullname);
if(ifnull==1)
{
//生成随机数
string name=filename.upfile_name();
//type为文件的类型
string type=fullname.Substring(fullname.LastIndexOf("."));
int ifpic=filename.judgeifpic(type);
if(ifpic==1)
{
//上传
this.File1.PostedFile.SaveAs(Server.MapPath("upload")+"\\"+name+type);
this.Image1.ImageUrl="upload/"+name+type;
this.Image1.Visible=true;
this.LBL_txt.Text="文件"+fullname.Substring(fullname.LastIndexOf("\\")+1)+"上传成功!";
}
else
{
Response.Write("<script language='javascript'>alert('图片格式不正确!');</script>");
}
}
else if(ifnull==0)
{
Response.Write("<script language='javascript'>alert('没有选择任何文件!');</script>");
}
}
}
}
tool.cs 代码
using System;
namespace upfiles
{
/// <summary>
/// tools 的摘要说明。
/// </summary>
public class tools
{
//生成随机文件名的方法
public string upfile_name()
{
Random rm = new Random(System.Environment.TickCount);
return System.DateTime.Now.ToString("yyyyMMddhhmmss")+rm.Next(1000,9999).ToString();
}
//判断是否为空的方法
public int judgeifnull(string name)
{
if(name=="")
{
return 0;
}
else
{
return 1;
}
}
//限定为图片格式jpg、bmp、gif
public int judgeifpic(string type)
{
if(type.ToLower()==".jpg"||type.ToLower()==".gif"||type.ToLower()==".bmp")
{
return 1;
}
else
{
return 0;
}
}
}
}
呵呵,就这些啦,批评指正!!!
谢谢收看,下次再见!