.net上传控件
来源:互联网 发布:ubuntu启动黑屏 编辑:程序博客网 时间:2024/06/05 15:01
一.接收上传文件
(1) FileUpLoad控件:
说明:用于用户向Web应用程序上传文件.
相关属性和方法
属性名
说明
Enable
用于禁用FileUpload控件
FileBytes
以字节数组形式获取上传文件内容
FileContent
以流(stream)形式获取上传文件内容
FileName
用于获得上传文件名字(包括扩展名)
HasFile
有上传文件时返回True
PostedFile
用于获取包装成HttpPostFile对象的上传文件
方法名
说明
Focus
设置FileUpLoad控件的焦点
SaveAs()
用于把上传文件保存到文件系统中[绝对路径]
HttpPostFile类相关属性和方法
属性名
说明
ContentLength
用于获得上传文件的字节大小
ContentType
用于获得上传文件的类型
FileName
用于获得上传文件的名字
InputStream
把上传文件当成流来获取
方法名
说明
SaveAs
用于把上传文件保存到文件系统中
(2) 把文件保存到文件系统
原理:用SaveAs方法把文件上传到指定的地方
案例:上传文件到服务器上某一个位置,并且把该目录下面的所有图片显示出来
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->protected void btUp_Click(object sender, EventArgs e)
{
if (fileUp.HasFile)//判断是否有文件
{
Literal lt =new Literal();//定义一个Literal用来显示脚本
if (CheckFileType(fileUp.FileName))//检查上传文件的类型
{
string filePath= "~/file/"+ fileUp.FileName;
fileUp.SaveAs(MapPath(filePath));//把文件上传到服务器的绝对路径上
lt.Text ="<script>alert('文件上传成功!~')</script>";
}
else
{
lt.Text ="<script>alert('文件类型不正确!~')</script>";
}
this.Controls.Add(lt);
}
}
//用来获取文件类型
public bool CheckFileType(string fileName)
{
//获取文件的扩展名,前提要用这个方法必须引入命名空间io
string ext= Path.GetExtension(fileName);
switch (ext.ToLower())
{
case".gif":
returntrue;
case".png":
returntrue;
case".jpeg":
returntrue;
case"jpg":
returntrue;
default:
returnfalse;
}
}
注意事项:为了使文件能上传到服务器,ASP.NET页面关联的Window账户必须有足够的权限来保存文件,设置权限的方法,在要上传的目录中点击右键—选择安全----为NETWORK SERVICE或ASP.NET账户提供该文件夹的写权限
把上传的文件显示到DataList中
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->string upPath = MapPath("~/file/");
DirectoryInfo dir =new DirectoryInfo(upPath);
DataList1.DataSource = dir.GetFiles();
DataList1.DataBind();
(3) 把文件保存到数据库
优缺点:
优点:可以避免文件系统权限问题,其次把文件保存在数据库中能更方便地备份信息
缺点:在数据库中保存和检索文件会给服务器端增加压力
原理:
利用FileUpLoad控件的FileBytes属性来获取字节数组
数据表格设计:
字段名
数据类型
说明
Id
Int(identity)
文件编号
FileName
varchar(50)
文件名
FileLength
Int
文件大小
FileFiter
Varchar(20)
文件扩展名
FileBytes
Image
文件字节数组
事例:将文件上传到数据库中Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->protected void btUp_Click(object sender, EventArgs e)
{
if (fileUp.HasFile)
{
string strCon= "server=.;database=test;uid=sa;pwd=";
SqlConnection sqlcon =new SqlConnection(strCon);
sqlcon.Open();
SqlCommand sqlcom =new SqlCommand();
sqlcom.Connection = sqlcon;
sqlcom.CommandText ="insert into [File] values(@FileName,@FileLength,@FileFiter,@FileBytes)";
sqlcom.Parameters.Add("@FileName", SqlDbType.VarChar).Value= fileUp.FileName;
sqlcom.Parameters.Add("@FileLength", SqlDbType.Int).Value= fileUp.FileBytes.Length;
sqlcom.Parameters.Add("@FileFiter", SqlDbType.VarChar).Value= Path.GetExtension(fileUp.FileName);
sqlcom.Parameters.Add("@FileBytes", SqlDbType.Image).Value= fileUp.FileBytes;
sqlcom.ExecuteNonQuery();
sqlcon.Close();
}
}
(4) 上传大文件
说明:ASP.NET中默认是不能提交大于4MB的表单,如果超过这个这个值就会报异常,解决方法需要配置web.config文件
<system.web>
<httpRuntime maxRequestLength="10240" requestLengthDiskThreshold="100" executionTimeout="600" />
</system.web>
maxRequestLength文件上传的最大字节数,以kb为单位
requestLengthDiskThreshold文件上传时缓存的大小
executionTimeout文件上传的最大时间以秒为单位
(5) 总结
(1) System.IO.GetExtension()提取指定路径的扩展名
(2) MapPath()获取指定虚拟路径对应的服务器物理路径
(3) 为了防止文件名字相同,我们一般用上传的当前时间为文件名
- asp.net 上传控件
- .net上传控件
- .NET上传控件源码[HtmlInputFileControl]
- .NET上传控件源码[HtmlInputFileControl]
- NET上传控件源码[HtmlInputFileControl]
- .net fileupload上传控件【原创】
- 简易ASP.NET上传控件
- .net大文件上传控件
- .net C# FileUpload控件上传
- 【转】.Net 文件上传控件
- asp.net 上传控件 问题
- ASP.NET 之 HTML上传控件上传!
- ASP.NET基本控件FileUpload上传控件
- ASP.NET 多文件上传自定义控件
- .net上传控件,支持大文件,无限制
- asp.net 上传大文件控件
- asp.net 2.0 上传控件的使用
- asp.net 2.0上传控件的使用
- 网络搜索引擎---网络爬虫之原理分析和探讨
- 【转】VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)
- 数据权限设计初探
- Oracle rac安装过程详解
- .net下载文件
- .net上传控件
- 【HDU1272】小希的迷宫解题报告,数据+思路+代码
- ajax分页实现,感觉跟我想的有点差距,难道是我错了
- 七种qsort排序方法 .
- 上传图片
- tftp的使用
- 12312312321
- 数据结构——稀疏矩阵的压缩存储
- 【POJ2255】Tree Recovery解题报告 思路 + 数据 +代码