下面是小编整理的asp.net文件的方法,本文共9篇,希望能帮助到大家!本文原稿由网友“carefree”提供。
篇1:asp.net文件的方法
public class FileDown
{
public FileDown
{ }
///
/// 参数为虚拟路径
///
public static string FileNameExtension(string FileName)
{
return Path.GetExtension(MapPathFile(FileName));
}
///
/// asp.net下载文件的方法:获取物理地址
///
public static string MapPathFile(string FileName)
{
return HttpContext.Current.Server.MapPath(FileName);
}
///
/// 普通下载
///
///
文件虚拟路径
public static void DownLoadold(string FileName)
{
string destFileName = MapPathFile(FileName);
if (File.Exists(destFileName))
{
FileInfo fi = new FileInfo(destFileName);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = false;
HttpContext.Current.Response.AppendHeader(“Content-Disposition”, “attachment;filename=” + HttpUtility.UrlEncode(Path.GetFileName(destFileName), System.Text.Encoding.UTF8));
HttpContext.Current.Response.AppendHeader(“Content-Length”, fi.Length.ToString());
HttpContext.Current.Response.ContentType = “application/octet-stream”;
HttpContext.Current.Response.WriteFile(destFileName);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
}
///
/// asp.net分块下载
///
///
文件虚拟路径
public static void DownLoad(string FileName)
{
string filePath = MapPathFile(FileName);
long chunkSize = 204800; //指定块大小
byte[] buffer = new byte[chunkSize]; //建立一个200K的缓冲区
long dataToRead = 0; //已读的字节数
FileStream stream = null;
try
{
//打开文件
stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
dataToRead = stream.Length;
//添加Http头
HttpContext.Current.Response.ContentType = “application/octet-stream”;
HttpContext.Current.Response.AddHeader(“Content-Disposition”, “attachement;filename=” + HttpUtility.UrlEncode(Path.GetFileName(filePath)));
HttpContext.Current.Response.AddHeader(“Content-Length”, dataToRead.ToString());
while (dataToRead >0)
{
if (HttpContext.Current.Response.IsClientConnected)
{
int length = stream.Read(buffer, 0, Convert.ToInt32(chunkSize));
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Clear();
dataToRead -= length;
}
else
{
dataToRead = -1; //防止client失去连接
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(“Error:” + ex.Message);
}
finally
{
if (stream != null) stream.Close();
HttpContext.Current.Response.Close();
}
}
///
/// 输出硬盘文件,提供下载 支持大文件、续传、速度限制、资源占用小
///
///
Page.Request对象
///
Page.Response对象
///
下载文件名
///
带文件名下载路径
///
每秒允许下载的字节数
///
//---------------------------------------------------------------------
//调用:
// string FullPath=Server.MapPath(“count.txt”);
// ResponseFile(this.Request,this.Response,“count.txt”,FullPath,100);
//---------------------------------------------------------------------
public static bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)
{
try
{
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
try
{
_Response.AddHeader(“Accept-Ranges”, “bytes”);
_Response.Buffer = false;
long fileLength = myFile.Length;
long startBytes = 0;
int pack = 10240; //10K bytes
int sleep = (int)Math.Floor((double)(1000 * pack / _speed)) + 1;
if (_Request.Headers[“Range”] != null)
{
_Response.StatusCode = 206;
string[] range = _Request.Headers[“Range”].Split(new char[] { '=', '-' });
startBytes = Convert.ToInt64(range[1]);
}
_Response.AddHeader(“Content-Length”, (fileLength - startBytes).ToString());
if (startBytes != 0)
{
_Response.AddHeader(“Content-Range”, string.Format(“ bytes {0}-{1}/{2}”, startBytes, fileLength - 1, fileLength));
}
_Response.AddHeader(“Connection”, “Keep-Alive”);
_Response.ContentType = “application/octet-stream”;
_Response.AddHeader(“Content-Disposition”, “attachment;filename=” + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8));
br.BaseStream.Seek(startBytes, SeekOrigin.Begin);
int maxCount = (int)Math.Floor((double)((fileLength - startBytes) / pack)) + 1;
for (int i = 0; i < maxCount; i++)
{
if (_Response.IsClientConnected)
{
_Response.BinaryWrite(br.ReadBytes(pack));
Thread.Sleep(sleep);
}
else
{
i = maxCount;
}
}
}
catch
{
return false;
}
finally
{
br.Close();
myFile.Close();
}
}
catch
{
return false;
}
return true;
}
}
篇2:asp.net文件的方法
1 string fileName = “aaa.zip”;//客户端保存的文件名
2 string filePath = Server.MapPath(“DownLoad/aaa.zip”);//路径
3
4 System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
5
6 if (fileInfo.Exists == true)
7 {
8 const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
9 byte[] buffer = new byte[ChunkSize];
10
11 Response.Clear();
12 System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
13 long dataLengthToRead = iStream.Length;//获取下载的文件总大小
14 Response.ContentType = “application/octet-stream”;
15 Response.AddHeader(“Content-Disposition”, “attachment; filename=” + HttpUtility.UrlEncode(fileName));
16 while (dataLengthToRead >0 && Response.IsClientConnected)
17 {
18 int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
19 Response.OutputStream.Write(buffer, 0, lengthRead);
20 Response.Flush();
21 dataLengthToRead = dataLengthToRead - lengthRead;
22 }
23 Response.Close();
24 }
篇3:在ASP.NET中如何进行文件上传
在ASP.NET中如何进行文件上传
上传文件的步骤:
首先,从客户端取得上传的文件,然后,我们将它放入数据流;
第二,服务器端读取数据流,然后将其保存到缓存;
第三,将缓存数据保存到数据库;
第一步
首先我们要实现用户在浏览器端自由选择文件,然后上传,这里用户选择文件,当然是要求标准的Windows方式,所以,我们在这里使用Form的File 文件组件来给用户选择文件,注意,因为上传文件,所以,在Form的属性设置的时候,我们应该设置为:multipart/form-data,这样,才可以正确上传文件。
下面是上传页面的主要代码:
第二步
我们可以将上传的文件通过数据流保存到缓存,缓存的`大小和文件的具体大小相同,我们可以使用以下的代码来取得文件的具体大小:
int intDocLen = txtFileContents.PostedFile.ContentLength;
然后,我们可以设置缓存的具体大小了:
byte[] Docbuffer = new byte[intDoclen];
这样设置以后,我们可以将上传文件的内容保存到缓存中:
Stream objStream;
objStream = txtFileContents.PostedFile.InputStream;
objStream.Read(Docbuffer,0,intDocLen);
在以上代码中,读取缓存的时候,从缓存的0位置开始,直到整个文件的长度,其实,这就是整个文件或者整个缓存的大小。
第三步
现在我们需要做的就是将缓存数据保存到数据库,我们已经直到数据表结 构,这样,我们通过编写简单的SQL语句就可以实现这个功能。在上面的内容中,我们编写了一个存储过程,在程序中,我们只要建立SqlCommand对象并且将这个存储过程传递给它,并设置“@Doc”参数取得缓存数据就可以了:
cmdUploadDoc = new SqlCommand(“uSP_BooksUploadFile”,BooksConn);
cmdUploadDoc.CommandType = CommandType.StoredProcedure;
cmdUploadDoc.Parameters.Add(“@Title “,SqlDbType.VarChar,200);
cmdUploadDoc.Parameters.Add(“@Doc”,SqlDbType.Image); cmdUploadDoc.Parameters.Add(“@DocType”,SqlDbType.VarChar,4);
cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
cmdUploadDoc.Parameters[1].Value = Docbuffer;
cmdUploadDoc.Parameters[2].Value = strDocType;
点击按钮处理代码
private void btnSubmit_Click(object sender, System.EventArgs e)
{
string strDocExt;
//strDocType用于保存上传文件的类型
string strDocType;
//用于保存文件大小
int intDocLen;
//Stream用于读取上传数据
Stream objStream;
SqlConnection BooksConn;
SqlCommand cmdUploadDoc;
if(IsValid)
{
if(txtFileContents.PostedFile != null)
{
//文件类型
篇4:解决Godaddy主机asp.net无法上传文件的问题
Godaddy的WINDOWS主机,asp.net的信任模式为中等,如果是新站子站中使用文件操作将会出现无权限调用程序集的错误!相信很 多朋友都曾尝试过很多办法,但结果非常令人失望,Godaddy不允许在Web.Config中修改信任模式,有的朋友将asp.net的版本设置为 1.1,这样就可以使用完全的信任模式,那我们的程序是.net2.0甚至是.net 4.0的怎么办呢?
以下我就会通过一个文件上传的例子来说明如何解决Goddady主机的无权限调用程序集的解决办法!
如果在子站中上传文件,就会提示没有I/O操作的权限,如下图:
AllowPartiallyTrustedCallersAttribute 特性允许部分分受信任的代码调用某个程序集,该特性位于System.Security命名空间下。
只能用于程序集,只要我们为程序集添加该特性,那我们的代码就能调用System.Security.Permissions.FileIOPermission程序集。
代码如下:
using System.Reflection;
using System.Security;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的常规信息通过下列属性集
// 控制,
更改这些属性值可修改
// 与程序集关联的信息。
[assembly:AllowPartiallyTrustedCallers]
[assembly:AssemblyCompany(“OPSoft Inc.”)]
[assembly:AssemblyProduct(”OPSite.Web”)]
[assembly:AssemblyCopyright(“版权所有 (C) www.ops.cc ”)]
我们需要添加粗体部分到我们的程序集信息文件中。现在我们可以再试试上传功能,发现存储文件的时候:
Server.MapPath(“~”) 返回的路径已经是根目录了,那子站的文件上传到根目录肯定没有这个权限的!
可以使用AppDomain.CurrentDomain.BaseDirectory 获取当前程序集的目录路径。
这样asp.net就可以完美的在goddady的子站中上传文件和I/O操作了!
文章由www.ops.cc站长撰写。 感谢 刘铭 的投稿
篇5:Asp.Net 面试题
1 ASp.Net是什么?
ASp.Net是建立在微软新一代.Net平台架构上,利用普通语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架。
2.ASp.Net与ASp的联系和主要区别是什么?
ASp.Net与现存的ASp保持语法兼容,实际上我们可将现有的ASp源码文件扩展名“.asp”改为“.aspx”,然后配置在支持ASp.Net运行时的IIS服务器的Web目录下,即可获得ASp.Net运行时的全部优越性能。
ASp.Net与ASp的主要区别在于前者是编译(Compile)执行,而后者是解释(Interpret)执行,前者比后者有更高的效率。实际上我们可以把ASp.Net的执行过程看做是编译后的普通语言运行时代码充当一个和前端浏览器和中间件用户交互的应用程序,它接受用户的请求,输出HTML流到客户端显示。除此之外,ASp.Net还可以利用.Net平台架构的诸多优越性能,如类型安全,对XML,SOAp, WSDL等Internet标准的强健支持。
3.目前ASp.Net的开发语言有那些?
目前ASp.Net的开发语言有三种语言,C#,Visual Basic.Net和JScrip.
4.ASp.Net的主要优点有哪些?
ASp.Net可完全利用.Net架构的强大,安全,高效的平台特性。ASp.Net是运行在服务器后端编译后的普通语言运行时代码,运行时早绑定(Early Binding),即时编译,本地优化,缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为ASp.Net带来卓越的性能。
对XML,SOAp,WSDL等Internet标准的强健支持为ASp.Net在异构网络里提供了强大的扩展性。
5.ASp.Net主要包括哪些内容?
ASp.Net主要包括WebForm和WebService两种编程模型。前者为用户提供建立功能强大,外观丰富的基于表单(Form)的可编程
Web页面。后者通过对HTTp,XML,SOAp,WSDL等Internet标准的支持提供在异构网络环境下获取远程服务,连接远程设备,交互远程应用的编程界面.
6.HTML Server Control和Web Server Control有什么联系和区别?
HTML Server Control是为了和传统ASp保持兼容而开发的一类基于HTML静态页面的控件(如文本框,按钮),它们与这些控件一一对应,它们位于命名空间System.Web.UI.HtmlControls里。
Web Server Control 是专为下一代基于组件开发的.Net平台架构而量身定做的,它不仅包括具有传统HTML静态页面的控件等Web Server Control,它还包括有AdRotator,XML等功能强大的组件,更重要的是它为用户开发Web Server Control组件提供了强大,易用的技术底层支持。这将成为下一阶段ASp.Net开发的热点。它们位于命名空间System.Web.UI.WebControls里。
篇6:asp.net 简历
姓 名
朱敏涛
身份证号码
性 别
男
年 龄
25岁
政治面貌
共青团员
婚姻状况
未婚
视 力 状 况
2.0
身高(厘米)
176cm
体重(公斤)
63kg
民 族
汉族
户口所在地
抚州市(含区市县)
技术职称
最 高 学 历
本科
现居住地
南昌市(含区市县)
毕业时间
求 职 状 态
目前正在找工作
电话、手机
haitao@jianlimoban.cn
个人主页
www.vool.cn
地 址
江西省南昌市高新大道883号
邮编
330000
受教
育及
培训
状况
9 月 至 7月
太原大学
计算机应用技术 大专
专业描述:
涉及计算机硬件、软件和网络各方面的知识。学习的课程有C、.NET、JSP、WEB网页设计、软件工程、AutoCAD辅助设计、VB、JAVA和SQL数据库等。
工
作
经
验
摘
要
任职公司名称: 皓博培训中心 。
皓博培训
工作职责和业绩:
C#.NET
求职意向
现从事行业:
IT/信息产业
现从事职业:
网页设计/制作/美工
现职位级别:
初级职位(两年以下工作经验)
期望月薪:
面议
目前月薪:
面议
可到岗时间:
一周以内
期望工作性质:
全职
欲工作地区:
抚州市(含区市县)、南昌市(含区市县)
欲从事行业:
IT/信息产业、www.code8.net源码吧 通信/电子、通信/电子、能源/电力/水利、互联网
欲从事职业:
计算机软件、网页设计/制作/美工、绘画、数据库开发工程师、网站编辑
技能特长
外语水平
第一外语:英语 中级第二外语:英语 中级
兴趣爱好
爱看书学习、。运动,比如篮球、游泳。
自我简评
HR部门评语
篇7:asp.net怎么学习
asp.net学习方法
第一步:学习HTML。这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS的box模型。许多ASP.NET控件最后都必须转化为HTML。而且,p+CSS是当前主流的网页布局模型。学习这部分时,关键在于理解概念,而不需要将精力花在美化页面的许多技巧上,那是网站美工的工作,不是程序员的工作。
第二步:学习JavaScript。它主要运行于浏览器端,可以完成许多工作,功能也很强大:比如它将客户端网页中的HTML元素看成一棵树,可以编写代码访问并修改树节点,动态生成新的HTML代码,从而达到动态修改网页显示特性的目的。在目前的网站开发中用得很多,非常重要。另外,它也是目前非常流行的AJAX技术的基础。
第三步:学习计算机网络原理。找一本大学《计算机网络》教材,重点看看它的有关互联网的部分,了解一些域名解析和HTTP协议等知识,这是进行互联网开发的理论基础。
第四步:学习ASP.NET表示层技术。会设计Web页面需要结合先前打好的面向对象技术的基础,至少掌握以下内容:(1)各种Web控件的使用方法;(2)理解信息在网页中的传送方式,比如Cookie,ViewState,Session等的使用;(3)ASP.NET应用程序与网页的生命周期,以及相关对象(比如httpcontext,response,request)的用途;(4)ASP.NET实现事件驱动的内幕;(5)自定义用户控件。
第五步:掌握数据库技术。具体地说,要学习以下内容:(1)学会使用SQL Server :不要求精通它的各种工具与管理配置技术,但至少知道如何连接,如何建表,如何创建存储过程;(2)学习ADO.NET,掌握使用代码人工访问数据库(别用VS2005的向导)的方法;(3)学习数据绑定控件的使用。
第六步:理解多层架构。这时,先前在OO学习阶段涉及到的程序集与应用程序域等就派上用场了,现在,网站架构大多采用多层架构:表示层、业务逻辑层、数据存取层以及数据库本身。可以先上网找一此多层架构的资料看,再找一个现成的比较复杂的开源ASP.NET项目分析一下其架构就差不多了。基本上都是一个套路,到处应用。
第七步:学习XML。了解XML的基础知识,找本讲XML的书看一下就差不多了,然后再学习Web Service。Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。学到了这里,如果你还有兴趣,不妨再去看看SOA,不过SOA的资料都是理论与概念,看起来比较郁闷,而且离实际开发可能比较远,所以这是可选项。
第八步:学习AJAX。主要目的是创建具有更丰富特性的Web表示层,而经过前面七步的学习,到此再学习AJAX已水到渠成,所有的基础都已具备,不会有太大的问题了。江西北大青鸟南昌校区专业老师认为,在基础未具备的前提下直接学AJAX,就像“浮沙之上筑高台”,所以将AJAX的学习次序安排在这里。
第九步:学习RIA技术。Rich internet application,可看成是将C/S与B/S优点合二为一的尝试。就具体技术来说,主要指微软的Silverlight(WPF_E)。不过目前学习它主要是为了技术储备。
asp.net可管理性
asp.net使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为“Zero Local Administration”的哲学观念使asp.net的基于应用的开发更加具体和快捷。一个asp.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。
多处理器环境的可靠性asp.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的asp.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点。自定义性和可扩展性asp.net设计时考虑了让网站开发人员可以在自己的代码中自己定义“plug-in”的模块。这与原来的包含关系不同,asp.net可以加入自己定义的任何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。asp.net的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加asp.net功能,随时增强 ASP 应用程序的功能。
asp.net是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何asp.net应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的 公共语言运行库环境、类型安全、继承等等。asp.net可以无缝地与 WYSIWYG HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。
当创建asp.net应用程序时,开发人员可以使用 Web 窗体或 XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义. 如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML语言和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在asp.net的世界开始展翅高飞了。
篇8:.dwg文件怎么打开?_dwg文件打开方法
因为.dwg文件是AUTOCAD生成的文件,所以,可以用AUTOCAD软件来打开,但是要注意,高版本的AutoCAD软件可以打开低版本的.dwg文件,因此最好用较高版本的AUTOCAD软件,可以安装AUTOCAD 、AUTOCAD 、AUTOCAD 、AUTOCAD 等。
dwg文件怎么打开_方法2:用DWG浏览器Acme CAD Converter来打开
对于不常使用AUTOCAD的人来说,用AUTOCAD来打开dwg会显得比较麻烦,因为AUTOCAD这个软件比较大,下载和安装都比较麻烦。大家可以使用“DWG浏览器Acme CAD Converter”来打开,这个软件体积很小,只有几兆大小,下载安装会比较快捷方便,
Acme CAD Converter也是一款优秀的多功能CAD图形工具软件,它可以浏览不同版本的DWG和DXF文件(R2.5—R),并可以将CAD图形文件批量转换为GIF,JPEG,DXF,DWG,SVG,HPGL PDF等格式,快速的将CAD图形文件输出为矢量图形,将图形文件另存为任意大小的高精度位图以方便在Photoshop等软件中进行处理,支持全屏幕方式,支持彩色及单色的图形文件和光栅文件的打印输出并可自由地设置背景颜色,支持shx字体文件,xref块文件,和光栅文件的导入,支持创建对dwg和dxf文件的关联。完美的支持CAD图形中文字体的显示。 。
篇9:.dwg文件怎么打开?_dwg文件打开方法
ABViewer是Soft Gold 推出的 ABViewer 图形查看器适合在家庭和工作中使用,它可以查看、浏览并编辑 CAD 格式 (DWG, DXF, HPGL, SVG, CGM 等) 以及约 30 种光栅图像格式,该程序还可以精确调节图形,并将其转成不同的文件格式。程序具有批处理功能。ABViewer 的界面直观,在工具栏上可以迅速找到有关选项及命令。在浏览器面板浏览文件夹时,即可打开文件,频繁使用的图形会加到收藏列表中。
- 文件报告范文2022-12-11
- 专利文件范文2023-05-05
- Elf文件DT2023-06-28
- folder.htt的文件问题2023-08-05
- Filemanagement(文件管理)2023-07-20
- 文件保密工作自查报告2024-06-07
- 文件范文写法2023-04-16
- 呈请文件范文2023-09-14
- ASP.NET的网站新闻管理系统设计与实现?22023-01-01
- 如何修改interfaces文件2022-12-12