愤怒的大鸟 发表于 2015-1-16 22:31:11

ASP.NET网站制作之ASP和C#埋没文件下载路径的办法

在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。下载  关于下载路径的埋没都是经由过程传送一个数据库中的ID,然后在别的一张页面经由过程传送的ID在数据库中读前路径。
  1、c#中完成的办法(只必要.ASPX.CS的代码就能够了)
stringsel_sql="selectFileVisualPathfromTabMailAttachFileswhereFileID="+Request.QueryString["destFileName"].ToString();
//stringdestFileName=Request.QueryString["destFileName"]!=null?Request.QueryString["destFileName"]:"";
stringdestFileName=ROA.Components.fune_commerce.Execad(sel_sql).Tables.Rows.ToString();
destFileName=Server.MapPath(".")+destFileName;
destFileName=Server.UrlDecode(destFileName);
if(File.Exists(destFileName))
{
FileInfofi=newFileInfo(destFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer=false;

//Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.Default));
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length",fi.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(destFileName);
Response.Flush();
Response.End();
}
else
{
Response.Write("<scriptlangauge=javascript>alert(文件不存在!);history.go(-1);</script>");
Response.End();
}
  2、在ASP中的完成办法
<!--#includefile="conn.asp"-->
<%
Response.Buffer=true
Response.Clear
dimurl
Dimfso,fl,flsize
dimDname
DimobjStream,ContentType,flName,isre,url1
*********************************************挪用时传进的下载文件名
m_ID=trim(request.QueryString("ID"))
setrs=Server.CreateObject("adodb.recordset")
sql="select*fromdataviewwherexsf=trueandid="&m_ID
rs.opensql,conn,1,1
ifnotrs.eofthen
Dname=rs("path")
else
Response.Write("nofound")
Response.end
endif
rs.close:setrs=nothing
*********************************************
IfDname""Then
******************************下载文件寄存的服务端目次
url=Server.MapPath(Dname)
else
Response.Write("nofound")
Response.end
EndIf
Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setfl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setfl=Nothing
Setfso=Nothing
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFileurl
SelectCaselcase(Right(flName,4))
Case".asf"
ContentType="video/x-ms-asf"
Case".avi"
ContentType="video/avi"
Case".doc"
ContentType="application/msword"
Case".zip"
ContentType="application/zip"
Case".xls"
ContentType="application/vnd.ms-excel"
Case".gif"
ContentType="image/gif"
Case".jpg","jpeg"
ContentType="image/jpeg"
Case".bmp"
ContentType="image/bmp"
Case".ppt"
ContentType="application/vnd.ms-powerpoint"
Case".mdb"
ContentType="application/x-msaccess"
Case".wav"
ContentType="audio/wav"
Case".mp3"
ContentType="audio/mpeg3"
Case".mpg","mpeg"
ContentType="video/mpeg"
Case".rtf"
ContentType="application/rtf"
Case".htm","html"
ContentType="text/html"
Case".txt"
ContentType="text/plain"
CaseElse
ContentType="application/octet-stream"
EndSelect
Response.AddHeader"Content-Disposition","attachment;filename="&flName
Response.AddHeader"Content-Length",flsize
Response.Charset="UTF-8"
Response.ContentType=ContentType
Response.BinaryWriteobjStream.Read
Response.Flush
response.Clear()
objStream.Close
SetobjStream=Nothing
%>
出处:『漂掉在蓝世界的云』BLOG
那做企业软件是不是最好用J2EE?

莫相离 发表于 2015-1-19 16:05:24

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。

不帅 发表于 2015-1-19 16:05:24

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

小妖女 发表于 2015-1-24 16:50:36

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。

蒙在股里 发表于 2015-2-2 11:13:15

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

第二个灵魂 发表于 2015-2-7 18:46:35

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

小魔女 发表于 2015-3-7 04:44:17

同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。

飘飘悠悠 发表于 2015-3-14 12:01:42

大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。

活着的死人 发表于 2015-3-21 06:19:49

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
页: [1]
查看完整版本: ASP.NET网站制作之ASP和C#埋没文件下载路径的办法