Asp.Net 文件上传
2007-07-23 13:06
134 查看
1 、文件上传
最近做广告发布系统,不可避免的遇到 上传图片文件的问题。基本原理是将图片上传到服务器,然后将它的路径保存在数据库,显示的时候从服务器取出该路径,让img直接指向这个路径即可。当然在 上传的时候需要判断文件类型,比如是jpg、gif,swf等。在这里我是用正则表达式来验证的,该方法非常有效,而直接用endwith方法来判断有时 候会出现一些莫名其妙的问题。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取上传文件的路径
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string filename=this.file1.PostedFile.FileName;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//定义正则表达式
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Regex reg = new Regex(@"^.+/.(jpg)|(gif)|(swf)|(jpeg)$");
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//用正则表达式来判定
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if(!reg.Match(filename.ToLower()).Success)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{ base.Alert("上传的文件类型不符合要求!"); }
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取上传文件的名称
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string name = DateTime.Now.ToString("yyyyMMddhhmmss")+filename.Substring(filename.LastIndexOf("//")+1);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//要上传的服务器地址
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string path=Server.MapPath(string.Format("~/AdFiles/"))+name;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
try
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{ this.file1.PostedFile.SaveAs(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
catch(Exception ee)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{ base.Alert("图片上传失败,请与服务器空间商联系确认权限!");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
其次是上传权限的设置,如果是在本地,需要对虚拟目录下该文件夹设置写入权限,在该目录上鼠标右键->属性->安全->everyone->写入即可。
如果是在服务器,除了需要有该文件夹的写入权限之外,还要在web.config里面设置一下。
在system.web节点里面添加如下代码:
<identity impersonate="true" userName="UserName" password="PassWord" />
最好是分个目录,都放在AdFiles下,如果要直接查看(如内网),打开那个文件夹时间太长。这也是客户提出的。
最近做广告发布系统,不可避免的遇到 上传图片文件的问题。基本原理是将图片上传到服务器,然后将它的路径保存在数据库,显示的时候从服务器取出该路径,让img直接指向这个路径即可。当然在 上传的时候需要判断文件类型,比如是jpg、gif,swf等。在这里我是用正则表达式来验证的,该方法非常有效,而直接用endwith方法来判断有时 候会出现一些莫名其妙的问题。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取上传文件的路径
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string filename=this.file1.PostedFile.FileName;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//定义正则表达式
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Regex reg = new Regex(@"^.+/.(jpg)|(gif)|(swf)|(jpeg)$");
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//用正则表达式来判定
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if(!reg.Match(filename.ToLower()).Success)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{ base.Alert("上传的文件类型不符合要求!"); }
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//获取上传文件的名称
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string name = DateTime.Now.ToString("yyyyMMddhhmmss")+filename.Substring(filename.LastIndexOf("//")+1);
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//要上传的服务器地址
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
string path=Server.MapPath(string.Format("~/AdFiles/"))+name;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
try
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{ this.file1.PostedFile.SaveAs(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
catch(Exception ee)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{ base.Alert("图片上传失败,请与服务器空间商联系确认权限!");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
其次是上传权限的设置,如果是在本地,需要对虚拟目录下该文件夹设置写入权限,在该目录上鼠标右键->属性->安全->everyone->写入即可。
如果是在服务器,除了需要有该文件夹的写入权限之外,还要在web.config里面设置一下。
在system.web节点里面添加如下代码:
<identity impersonate="true" userName="UserName" password="PassWord" />
Feedback
# re: 最近遇到的几个小问题总结 回复 更多评论
2007-02-10 15:51 by 刘帝勇最好是分个目录,都放在AdFiles下,如果要直接查看(如内网),打开那个文件夹时间太长。这也是客户提出的。
相关文章推荐
- ASP.NET MVC下使用文件上传
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- ASP.NET Core 上传大文件无法接收的问题
- ASP.NET MVC之文件上传【二】
- ASP.NET中上传并读取Excel文件数据
- asp.net如何配置上传文件的大小
- 在ASP.NET MVC中实现大文件异步上传(2)
- ASP.NET大文件上传方案
- 解决asp.net上传文件时文件太大导致的错误
- [asp,jsp,asp.net]文件上传技术浅议~~
- ASP.NET中文件上传下载方法集合(上传限制,保存方式-二进制或文件形式,上传Internet上的资源 )
- [asp,jsp,asp.net]文件上传技术浅议~~
- 解决ASP.NET Core Mvc文件上传限制问题实例
- Asp.NET大文件上传组件开发总结(六)---大文件上传组件使用说明
- asp.net上传文件同名后 提示 (confirm)
- asp.net 上传超大文件
- Asp.net core 学习笔记 ( upload/download files 文件上传与下载 )
- ASP.NET 上传文件权限不足的解决方法
- asp.net上传RAR文件自动解压