在C#.net中做页面上传的程序。用Dhtml的控件:(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
来源:互联网 发布:小米手机如何重置网络 编辑:程序博客网 时间:2024/04/28 06:52
在C#.net中做页面上传的程序。用Dhtml的控件:<input type="file">(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
只用<input type="file">来做:
页面代码:
<form id="Form1" method="post" encType="multipart/form-data" runat="server">
<INPUT id="uploadfile1" style="Z-INDEX: 101; LEFT: 248px; POSITION: absolute; TOP: 200px"
type="file" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 368px; POSITION: absolute; TOP: 320px" runat="server" Text="Button"></asp:Button>
</form>
后台代码:
private void Button1_Click(object sender, System.EventArgs e)
{
//上传文件的目的地址(服务器的根地址)
string str_destination = "D://a//";
str_destination = Server.MapPath(".");
//这是文件将上传到的服务器的绝对目录
if (uploadfile1.PostedFile.ContentLength != 0) //判断选取对话框选取的文件长度是否为0
{
//获取上传文件的完全地址
string myFileUrl=uploadfile1.PostedFile.FileName;
//获取上传文件名
string[] myFileNameArray=myFileUrl.Split('//');
string myFileName=myFileNameArray[myFileNameArray.Length-1];
System.Diagnostics.Trace.WriteLine(myFileName);
uploadfile1.PostedFile.SaveAs(str_destination+"//"+myFileName);
}
}
用<input type="file">和类HtmlInputFile配合:
页面代码:
<form id="Form1" method="post" runat="server">
<INPUT style="Z-INDEX: 101; LEFT: 248px; POSITION: absolute; TOP: 200px" type="file" id="aa" runat="server" name="aa">
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 360px; POSITION: absolute; TOP: 352px" runat="server" Text="Button"></asp:Button>
</form>
后台代码:
public enum File //定义一个人用于存放玩家上传文件信息的一个数组
{
FILE_SIZE , //大小
FILE_POSTNAME, //类型(文件后缀名)
FILE_SYSNAME , //系统名
FILE_ORGINNAME, //原来的名字
FILE_PATH //文件路径
}
private static Random rnd = new Random(); //获取一个随机数
//HtmlInputFile是一个可以访问Html页面控件<input type="file">的可编程类
public static string[] UploadFile(HtmlInputFile file,string Upload_Dir) //实现玩家文件上传功能的主函数
{
string[] arr = new String[5];
string FileName = GetUniquelyString(); //获取一个不重复的文件名
string FileOrginName = file.PostedFile.FileName.Substring(file.PostedFile.FileName.LastIndexOf("//")+1);//获取文件的原始名
if(file.PostedFile.ContentLength<=0)
{ return null; }
string postFileName;
string FilePath = Upload_Dir.ToString();
string path = FilePath + "//";
try
{
int pos = file.PostedFile.FileName.LastIndexOf(".")+1;
postFileName = file.PostedFile.FileName.Substring(pos,file.PostedFile.FileName.Length-pos);
file.PostedFile.SaveAs(path+FileName+"."+postFileName); //存储指定的文件到指定的目录
}
catch(Exception exec)
{
throw(exec);
}
double unit = 1024;
double size = Math.Round(file.PostedFile.ContentLength/unit,2);
arr[(int)File.FILE_SIZE] = size.ToString(); //文件大小
arr[(int)File.FILE_POSTNAME] = postFileName; //文件类型(文件后缀名)
arr[(int)File.FILE_SYSNAME] = FileName; //文件系统名
arr[(int)File.FILE_ORGINNAME] = FileOrginName; //文件原来的名字
arr[(int)File.FILE_PATH]=path+FileName+"."+postFileName; //文件路径
return arr;
}
public static string GetUniquelyString() //获取一个不重复的文件名
{
const int RANDOM_MAX_VALUE = 1000;
string strTemp,strYear,strMonth,strDay,strHour,strMinute,strSecond,strMillisecond;
DateTime dt =DateTime.Now;
int rndNumber = rnd.Next(RANDOM_MAX_VALUE);
strYear = dt.Year.ToString ();
strMonth = (dt.Month > 9)? dt.Month.ToString() : "0" + dt.Month.ToString();
strDay = (dt.Day > 9)? dt.Day.ToString() : "0" + dt.Day.ToString();
strHour = (dt.Hour > 9)? dt.Hour.ToString() : "0" + dt.Hour.ToString();
strMinute = (dt.Minute > 9)? dt.Minute.ToString() : "0" + dt.Minute.ToString();
strSecond = (dt.Second > 9)? dt.Second.ToString() : "0" + dt.Second.ToString();
strMillisecond = dt.Millisecond.ToString();
strTemp = strYear + strMonth + strDay +"_"+ strHour + strMinute + strSecond +"_"+ strMillisecond +"_"+ rndNumber.ToString () ;
return strTemp;
}
private void Button1_Click(object sender, System.EventArgs e)
{
//上传文件的目的地址(服务器的根地址)
string str_destination = "";
str_destination = Server.MapPath(".");
UploadFile(aa,str_destination);
}
控件<input type="file">和HtmlInputFile伺服器控制項時的原定上传文件大小为4M,
可以通过修改web.config文件可以改变这个默认值 ,最大上传文件的可能大小是 2 GB。
<configuration>
<system.web>
<httpRuntime executionTimeout="90" maxRequestLength="100000" useFullyQualifiedRedirectUrl="false"></httpRuntime>
</system.web>
<configuration>
- 在C#.net中做页面上传的程序。用Dhtml的控件:(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
- 通过HtmlInputFile控件上传文件的类
- 通过HtmlInputFile控件上传文件的类
- 通过HtmlInputFile控件上传文件的类
- 通过HtmlInputFile控件上传文件的类
- 通过HtmlInputFile控件上传文件的类
- 通过HtmlInputFile控件上传文件的类
- asp.net 通过HtmlInputFile控件上传文件的类
- 清空上传控件HtmlInputFile的方法
- 如何通过HtmlInputFile控件上传文件的类
- FileUpload文件上传控件,一个文本框一个浏览。【这是要过冬了吗???今天真的很困啊!zzzzZZZZZZ】
- ASP.Net之HTMLInputFile控件上传文件
- 在VB.net中为DATAGRID控件增加一个删除按钮的一种方法
- ueditor 和 公共的上传 控件 在一个页面的问题
- 动态给文本框赋值 和 找页面控件的方法
- 代码创建一个居中的按钮(动态创建控件)
- 请问网页里的上传文件控件前的文本框禁止手工输入,只能“浏览”,应该怎么做?
- 新建 ProvinceCity用户控件。在该控件 中增加一个Button1按钮。在Demo1.aspx页面中引用 ProvincCity控件。并且加入button1和Lable1控件。当点击Demo1
- 触发器
- 开始SiteMesh
- 配置文件
- cobol生存之道
- 安装了"微软正版验证补丁"的解决方法
- 在C#.net中做页面上传的程序。用Dhtml的控件:(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
- 软件测试初学者精华(一)
- CSS hack浏览器兼容一览表
- 工作流管理技术基础--概念
- 我的xAjax入门教程——PHP学习日记之三
- 一个Select完成的标志列
- 为什么要用TextRenderer?
- 解决web开发中的中文问题
- 同一个WEB服务器中两个应用中的目录共享方法