文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
文件上传及下载

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
  <HTML><HEAD><TITLE>文件上传及下载:::http://www.booro.com</TITLE>
<SCRIPTlanguage=JavaScript>

helpstat=false;
stprompt=true;
basic=false;
functionthelp(swtch){
if(swtch==1){
basic=false;
stprompt=false;
helpstat=true;
}elseif(swtch==0){
helpstat=false;
stprompt=false;
basic=true;
}elseif(swtch==2){
helpstat=false;
basic=false;
stprompt=true;
}
}

functionAddText(NewCode){
document.myform.txtcontent.value+=NewCode
}

functionemail(){
if(helpstat){
alert("Email标记\n插入Email超级链接\n用法1:[email]web@booro.com[/email]\n用法2: [email=web@booro.com特鸟飞勤[/email]");
}elseif(basic){
AddTxt="[email][/email]";
AddText(AddTxt);
}else{
txt2=prompt("链接显示的文字.\n如果为空,那么将只显示你的Email地址","");
if(txt2!=null){
txt=prompt("Email地址.","stskyweb@21cn.com");
if(txt!=null){
if(txt2==""){
AddTxt="[email]"+txt+"[/email]";
}else{
AddTxt="[email="+txt+"]"+txt2;
AddText(AddTxt);
AddTxt="[/email]";
}
AddText(AddTxt);
}
}
}
}
functionflash(){
if(helpstat){
alert("Flash动画\n插入Flash动画.\n用法:[flash]Flash文件的地址[/flash]");
}elseif(basic){
AddTxt="[flash][/flash]";
AddText(AddTxt);
}else{
txt=prompt("Flash文件的地址","http://");
if(txt!=null){
AddTxt="[flash]"+txt;
AddText(AddTxt);
AddTxt="[/flash]";
AddText(AddTxt);
}
}
}

functionshowsize(size){
if(helpstat){
alert("文字大小标记\n设置文字大小.\n可变范围1-6.\n1为最小6为最大.\n用法:[size="+size+"]这是"+size+"文字[/size]");
}elseif(basic){
AddTxt="[size="+size+"][/size]";
AddText(AddTxt);
}else{
txt=prompt("大小"+size,"文字");
if(txt!=null){
AddTxt="[size="+size+"]"+txt;
AddText(AddTxt);
AddTxt="[/size]";
AddText(AddTxt);
}
}
}

functionbold(){
if(helpstat){
alert("加粗标记\n使文本加粗.\n用法:[b]这是加粗的文字[/b]");
}elseif(basic){
AddTxt="[b][/b]";
AddText(AddTxt);
}else{
txt=prompt("文字将被变粗.","文字");
if(txt!=null){
AddTxt="[b]"+txt;
AddText(AddTxt);
AddTxt="[/b]";
AddText(AddTxt);
}
}
}

functionitalicize(){
if(helpstat){
alert("斜体标记\n使文本字体变为斜体.\n用法:[i]这是斜体字[/i]");
}elseif(basic){
AddTxt="[i][/i]";
AddText(AddTxt);
}else{
txt=prompt("文字将变斜体","文字");
if(txt!=null){
AddTxt="[i]"+txt;
AddText(AddTxt);
AddTxt="[/i]";
AddText(AddTxt);
}
}
}

functionquote(){
if(helpstat){
alert("引用标记\n引用一些文字.\n用法:[quote]引用内容[/quote]");
}elseif(basic){
AddTxt="[quote][/quote]";
AddText(AddTxt);
}else{
txt=prompt("被引用的文字","文字");
if(txt!=null){
AddTxt="[quote]"+txt;
AddText(AddTxt);
AddTxt="[/quote]";
AddText(AddTxt);
}
}
}

functionshowcolor(color){
if(helpstat){
alert("颜色标记\n设置文本颜色.任何颜色名都可以被使用.\n用法:[color="+color+"]颜色要改变为"+color+"的文字[/color]");
}elseif(basic){
AddTxt="[color="+color+"][/color]";
AddText(AddTxt);
}else{
txt=prompt("选择的颜色是:"+color,"文字");
if(txt!=null){
AddTxt="[color="+color+"]"+txt;
AddText(AddTxt);
AddTxt="[/color]";
AddText(AddTxt);
}
}
}

functioncenter(){
if(helpstat){
alert("对齐标记\n使用这个标记,可以使文本左对齐、居中、右对齐.\n用法:[align=center|left|right]要对齐的文本[/align]");
}elseif(basic){
AddTxt="[align=center|left|right][/align]";
AddText(AddTxt);
}else{
txt2=prompt("对齐样式\n输入'center'表示居中,'left'表示左对齐,'right'表示右对齐.","center");
while((txt2!="")&&(txt2!="center")&&(txt2!="left")&&(txt2!="right")&&(txt2!=null)) {
txt2=prompt("错误!\n类型只能输入'center'、'left'或者'right'.","");
}
txt=prompt("要对齐的文本","文本");
if(txt!=null){
AddTxt="\r[align="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/align]";
AddText(AddTxt);
}
}
}

functionhyperlink(){
if(helpstat){
alert("超级链接标记\n插入一个超级链接标记\n使用方法:[url]http://www.aspsky.net[/url]\nUSE: [url=http://www.aspsky.net]链接文字[/url]");
}elseif(basic){
AddTxt="[url][/url]";
AddText(AddTxt);
}else{
txt2=prompt("链接文本显示.\n如果不想使用,可以为空,将只显示超级链接地址.","");
if(txt2!=null){
txt=prompt("超级链接.","http://");
if(txt!=null){
if(txt2==""){
AddTxt="[url]"+txt;
AddText(AddTxt);
AddTxt="[/url]";
AddText(AddTxt);
}else{
AddTxt="[url="+txt+"]"+txt2;
AddText(AddTxt);
AddTxt="[/url]";
AddText(AddTxt);
}
}
}
}
}

functionimage(){
if(helpstat){
alert("图片标记\n插入图片\n用法:[img]http://www.aspsky.net/logo.gif[/img]");
}elseif(basic){
AddTxt="[img][/img]";
AddText(AddTxt);
}else{
txt=prompt("图片的URL","http://");
if(txt!=null){
AddTxt="\r[img]"+txt;
AddText(AddTxt);
AddTxt="[/img]";
AddText(AddTxt);
}
}
}

functionshowcode(){
if(helpstat){
alert("代码标记\n使用代码标记,可以使你的程序代码里面的html等标志不会被破坏.\n使用方法:\n[code]这里是代码文字[/code]");
}elseif(basic){
AddTxt="\r[code]\r[/code]";
AddText(AddTxt);
}else{
txt=prompt("输入代码","");
if(txt!=null){
AddTxt="\r[code]"+txt;
AddText(AddTxt);
AddTxt="[/code]";
AddText(AddTxt);
}
}
}

functionlist(){
if(helpstat){
alert("列表标记\n建造一个文字或则数字列表.\n\nUSE:[list][*]项目一[/*][*]项目二[/*][*]项目三[/*] [/list]");
}elseif(basic){
AddTxt="[list][*][/*][*][/*][*][/*][/list]";
AddText(AddTxt);
}else{
txt=prompt("列表类型\n输入'A'表示有序列表,'1'表示无序列表,留空表示无序列表.","");
while((txt!="")&&(txt!="A")&&(txt!="a")&&(txt!="1")&&(txt!=null)) {
txt=prompt("错误!\n类型只能输入'A'、'1'或者留空.","");
}
if(txt!=null){
if(txt==""){
AddTxt="[list]";
}else{
AddTxt="[list="+txt+"]";
}
txt="1";
while((txt!="")&&(txt!=null)){
txt=prompt("列表项\n空白表示结束列表","");
if(txt!=""){
AddTxt+="[*]"+txt+"[/*]";
}
}
AddTxt+="[/list]";
AddText(AddTxt);
}
}
}

functionshowfont(font){
if(helpstat){
alert("字体标记\n给文字设置字体.\n用法:[face="+font+"]改变文字字体为"+font+"[/face]");
}elseif(basic){
AddTxt="[face="+font+"][/face]";
AddText(AddTxt);
}else{
txt=prompt("要设置字体的文字"+font,"文字");
if(txt!=null){
AddTxt="[face="+font+"]"+txt;
AddText(AddTxt);
AddTxt="[/face]";
AddText(AddTxt);
}
}
}
functionunderline(){
if(helpstat){
alert("下划线标记\n给文字加下划线.\n用法:[u]要加下划线的文字[/u]");
}elseif(basic){
AddTxt="[u][/u]";
AddText(AddTxt);
}else{
txt=prompt("下划线文字.","文字");
if(txt!=null){
AddTxt="[u]"+txt;
AddText(AddTxt);
AddTxt="[/u]";
AddText(AddTxt);
}
}
}
functionsetfly(){
if(helpstat){
alert("飞翔标记\n使文字飞行.\n用法:[fly]文字为这样文字[/fly]");
}elseif(basic){
AddTxt="[fly][/fly]";
AddText(AddTxt);
}else{
txt=prompt("飞翔文字","文字");
if(txt!=null){
AddTxt="[fly]"+txt;
AddText(AddTxt);
AddTxt="[/fly]";
AddText(AddTxt);
}
}
}

functionmove(){
if(helpstat){
alert("移动标记\n使文字产生移动效果.\n用法:[move]要产生移动效果的文字[/move]");
}elseif(basic){
AddTxt="[move][/move]";
AddText(AddTxt);
}else{
txt=prompt("要产生移动效果的文字","文字");
if(txt!=null){
AddTxt="[move]"+txt;
AddText(AddTxt);
AddTxt="[/move]";
AddText(AddTxt);
}
}
}

functionshadow(){
if(helpstat){
alert("阴影标记\n使文字产生阴影效果.\n用法:[SHADOW=宽度,颜色,边界]要产生阴影效果的文字[/SHADOW]");
}elseif(basic){
AddTxt="[SHADOW=255,blue,1][/SHADOW]";
AddText(AddTxt);
}else{
txt2=prompt("文字的长度、颜色和边界大小","255,blue,1");
if(txt2!=null){
txt=prompt("要产生阴影效果的文字","文字");
if(txt!=null){
if(txt2==""){
AddTxt="[SHADOW=255,blue,1]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}else{
AddTxt="[SHADOW="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}
}
}
}
}

functionglow(){
if(helpstat){
alert("光晕标记\n使文字产生光晕效果.\n用法:[GLOW=宽度,颜色,边界]要产生光晕效果的文字[/GLOW]");
}elseif(basic){
AddTxt="[glow=255,red,2][/glow]";
AddText(AddTxt);
}else{
txt2=prompt("文字的长度、颜色和边界大小","255,red,2");
if(txt2!=null){
txt=prompt("要产生光晕效果的文字.","文字");
if(txt!=null){
if(txt2==""){
AddTxt="[glow=255,red,2]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}else{
AddTxt="[glow="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}
}
}
}
}
functionopenscriphtml()
{
if(navigator.appName!="MicrosoftInternetExplorer")
alert("此功能Netscape用户不能使用!")
else
{newwin=window.open('htmledit/editor.html','','width=544,height=294');
newwin.focus();
}
}
functionrunEx(){
//alert('请注意,按下确定将生成页面,按下后请稍后....');
varwinEx=window.open("","winEx","width=600,height=400,status=yes,menubar=yes,scrollbars=yes,resizable=yes"); winEx.document.open("text/html","replace");
winEx.document.write(unescape(event.srcElement.parentElement.children[2].value));
winEx.document.close();
}
functionopenScript(url,width,height){
varWin=window.open(url,"openScript",'width='+width+',height=' +height+',resizable=1,scrollbars=yes,menubar=yes,status=yes');
}
</SCRIPT>

<SCRIPTlanguage=Javascript>
<!--hide

functioninsertsmilie(smilieface){

document.frmAnnounce.body.value+=smilieface;
}
//-->
</SCRIPT>

<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312"><LINK
href="文件上传及下载http--www_booro_com_files/style.css"rel=stylesheet>
<METAcontent="MSHTML6.00.3790.0"name=GENERATOR></HEAD>
<BODYonmouseover="self.status='DOTNET新网-DOTNET的技术荟萃本站';return true"
leftMargin=25topMargin=0>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT: #2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE: collapse"
height=25cellSpacing=1cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="100%"bgColor=#f4f8fbheight=23>&nbsp;&nbsp;<IMG
src="文件上传及下载http--www_booro_com_files/slogo_geci.gif"
border=0>&nbsp;&nbsp;文件上传及下载&nbsp;</TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT: #2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:collapse"
height=52cellSpacing=1cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="42%"
height=17>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<FONTcolor=#ff0000>你是第445位浏览该文章的人</FONT></TD>
<TDwidth="63%"height=17><IMG
src="文件上传及下载http--www_booro_com_files/04.gif"border=0>chnking&nbsp;<IMG
src="文件上传及下载http--www_booro_com_files/05.gif"border=0>csdn&nbsp;<IMG
src="文件上传及下载http--www_booro_com_files/date.gif"border=0>2003-9-4</TD></TR>
<TR>
<TDvAlign=topwidth="100%"colSpan=2height=35>
<DIValign=center>
<CENTER>
<TABLE
style="BORDER-TOP:#2b55751pxsolid;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH: 1px;BORDER-COLLAPSE:collapse;BORDER-RIGHT-WIDTH:1px"
cellSpacing=3cellPadding=0width="98%"border=0>
<TBODY>
<TR>
<TDwidth="100%">文件上传
<P></P>
<P>一.在Form中一定要将encType设为"multipart/form-data":<BR>&lt;form
id="WebForm3"method="post"encType="multipart/form-data"
runat="server"&gt;</P>
<P>二.
判断是否有文件上传了:<BR>当用户没有选择任何要上传的文件,即HtmlInputFile控件中的文本框为空时点击了上传按钮后,在服务端得到的File1.PostedFile对象不是null,而是有对象的,所以不能用(File1.PostedFile
==null)来判断是否上传了文件,用(File1.PostedFile.ContentLength!=0)来判断比较好</P>
<P>三.
判断上传文件MIMIE类型:<BR>文件上传后可以用File1.PostedFile.ContentType来读取这个文件的MIMIE类型,这个MIMIE类型是系统通过上传文件的后缀名来获得的。</P>
<P>四.保存上传的文件:</P>
<P>1.文件可以通过File1.PostedFile.SaveAs(path)
//path是服务器上的物理路径,来保存文件。</P>
<P>if(File1.PostedFile.ContentLength!=0)</P>
<P>{</P>
<P>StringBuildermyStr=newStringBuilder();</P>
<P>myStr.Append("文件名称:"+File1.PostedFile.FileName);</P>
<P>myStr.Append("&lt;br&gt;");</P>
<P>myStr.Append("文件类型:"+File1.PostedFile.ContentType);</P>
<P>myStr.Append("&lt;br&gt;");</P>
<P>myStr.Append("文件长度:"+
File1.PostedFile.ContentLength.ToString());</P>
<P>myStr.Append("&lt;br&gt;");</P>
<P></P>
<P>stringpath=Server.MapPath("./");//当前路径</P>
<P>stringfileName=
File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf('\\')+1);</P>
<P>path+=fileName;</P>
<P>if(File.Exists(path)==true)</P>
<P>{</P>
<P>Label1.Text="服务器上已经有了你正在上传的文件:"+fileName;</P>
<P>return;</P>
<P>}</P>
<P>File1.PostedFile.SaveAs(path);</P>
<P></P>
<P>myStr.Append("保存完毕!");</P>
<P>myStr.Append("&lt;br&gt;");</P>
<P>Label1.Text=myStr.ToString();</P>
<P>}</P>
<P>else</P>
<P>{</P>
<P>Label1.Text="你没有选择要上载的文件或者上传的文件长度为0!";</P>
<P>}<BR></P>
<P>2.文件也可以通过二进制的读取后存放到数据库的二进制的字段中:<BR>byte[]fileCont=new
byte[File1.PostedFile.ContentLength];<BR>File1.PostedFile.InputStream.Read(fileCont,0,
File1.PostedFile.ContentLength);<BR>然后将此字节数组fileCont赋给数据库的二进制字段的参数,写到数据库中。</P>
<P></P>
<P>文件下载</P>
<P>一.服务端通过Response输出相应的HTTPResponse
Headers信息,和要下载的文件的数据来把文件发送到客户端,HTTPResponse
Headers表现在html文件中是下面的形式:<BR>&lt;metahttp-equiv="Content-Type"
content="text/htm
"&gt;<BR>http-equiv表示是Headers的名称,content表示这个Headers的值</P>
<P>二.首先,要输出文件的MIME类型:<BR>Page.Response.AddHeader("Content-Type",
“MIME类型”);</P>
<P>三.
其次,要输出下载的文件的打开位置和文件名:<BR>Page.Response.AddHeader("Content-Disposition",
"attachment;filename="+FileName);<BR>content-disposition的 HTTP
responseheader允许指定文档表示的信息。使用这种header
,你就可以将文档指定成单独打开(而不是在浏览器中打开),还可以根据用户的操作来显示。如果用户要保存文档,你还可以为该文档建议一个文件名。这个建议名称会出现在
SaveAs对话框的“文件名”栏中。<BR>attachment――
表示作为附件发送到客户端,客户端将单独打开此文件。<BR>inline――表示将在浏览器中打开这个文件。<BR>filename
――表示发送到客户端文件的文件名。</P>
<P>四.
准备发送到客户端的文件数据:<BR>不管什么类型的文件都要先转成byte类型的数组,然后将这个byte数组用Response.BinaryWrite方法输出到客户端。</P>
<P>1.读取文件来获得byte数组:stringFileName;//生成或获取要发送到客户端的文件名</P>
<P>stringfilePath=Server.MapPath("./")+FileName;
//假设文件在当前目录下</P>
<P>if(File.Exists(filePath)==false)</P>
<P>{</P>
<P>//服务器上没有这个文件</P>
<P>return;</P>
<P>}</P>
<P>FileStreammyFile=File.OpenRead(filePath);
//读取文件进入FileStream</P>
<P>byte[]fileCont=newbyte[myFile.Length];</P>
<P>myFile.Read(fileCont,0,(int)myFile.Length);
//将文件流中的内容转成byte数组<BR></P>
<P>2.在数据库的二进制字段中读取://从url获取图片的id</P>
<P>stringImageId=Request.QueryString["img"];</P>
<P>//构建查询语句</P>
<P>stringsqlText="SELECTimg_data,img_contenttypeFROMImage
WHEREimg_pk="+ImageId;</P>
<P>SqlConnectionconnection=newSqlConnection(
ConfigurationSettings.AppSettings["DSN"].ToString());</P>
<P>SqlCommandcommand=newSqlCommand(sqlText,connection);</P>
<P>connection.Open();</P>
<P>SqlDataReaderdr=command.ExecuteReader();</P>
<P>if(dr.Read())</P>
<P>{</P>
<P>byte[]fileCont=(byte[])dr["img_data"];</P>
<P>}</P>
<P>connection.Close();<BR></P>
<P></P>
<P>通过上述两种方法获得的文件内容的byte数组就可以用来输出了:<BR>Page.Response.BinaryWrite(fileCont);</P>
<P>Page.Response.End();</P>
<P></P></TD></TR></TBODY></TABLE></CENTER></DIV><BR><BR>&nbsp; 上篇文章:<A
href="http://www.booro.com/teach/list.asp?id=550">用.NET创建Windows服务</A>
<BR>&nbsp;下篇文章:<A
href="http://www.booro.com/teach/list.asp?id=552">在托盘上显示Balloon
Tooltip(VB.NET)</A></TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT: #2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:collapse"
height=19cellSpacing=0cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="100%"bgColor=#f4f8fbheight=1>
<Palign=right>&nbsp;&nbsp;<A
href="http://www.booro.com/teach/list.asp?id=551#"><IMG
src="文件上传及下载http--www_booro_com_files/01.gif"border=0></A>&nbsp;<A
href="http://www.booro.com/teach/printpage.asp?id=551"><IMG
src="文件上传及下载http--www_booro_com_files/02.gif"border=0></A><A
href="javascript:self.close()"><IMG
src="文件上传及下载http--www_booro_com_files/03.gif"border=0></A>&nbsp;
</P></TD></TR></TBODY></TABLE></BODY></HTML>

   -------------------------------------------------------------------------------------------
  上一篇:向SQL Server数据库添加图片
  下一篇:玩透弹出窗口
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号