2023年12月7日发(作者:)

Web页面常用文件格式文件流的输出

今天,我的同事、同学、朋友老曲过生日,玩的有点晚了,以后在和朋友一起出去玩,尽量多吃饭少喝酒。前段时间,碰到一个如何进行用

流文件的形式输出文件的问题,没有找到好方法。我的同事、同学、朋友小朝,给我提供了很不错的建议,使用一般处理程序处理文件以文

件流的形式输出,并将其指向对应的地址(URL或Src)。简单的测试程序:

2010建立一个空白 Web项目,新建一个ASPX页面()输入如下代码:

(该文件包含一个图片显示标签、Windows Media Player播放器插件、BS Contact Control插件调用)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="" Inherits="yer" %>

height="100%">

2.其请求的一般处理程序()实现文件流的形式输出:using System;

using c;

using ;

using ;

using ;

namespace PPTWebTest

{

///

/// WebPlayerDecoding 的摘要说明

///

public class WebPlayerDecoding : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

string type = t["type"].ToString();

MemoryStream ms = null;

string fileName = ;

switch (type)

{

case "picture":

fileName = @"E:";

tType = "image/jpeg";

break;

case "media":

fileName = @"E教程1(上).avi";

tType = "video/x-msvideo";

break;

case "3DMax":

fileName = @"E:BS ";

tType = "x-world/x-vrml";

break;

}

//简单流文件读取(或复杂业务操作)

FileStream fs = new FileStream(fileName, , );

ms = new MemoryStream();

Byte[] bytes = new Byte[];

(bytes, 0, );

(bytes, 0, );

o(Stream);

();

();//也可以使用using进行文件流处理,注意流的关闭、释放

();

}

public bool IsReusable

{

get

{

return false;

}

}

}

}

将本地的文件以文件流的形式读取,存入内存流然后在输出,可以很好的实现一些很特别的业务需求,以前没有很特别的使用这种方

法,不过发现真的很不错。你可能会说直接在页面,直接指定标签或插件的URL或SRC不是很好吗,但对于一些特殊

的业务需求可能不能很好的满足。

可以在一般处理程序中指定文件的输出格式,并需要在其调用的前台页面有对应的标签或插件来接受这种格式的文件流,后台通过文件

流的形式输出,前台有对应的展示该文件格式的标签或插件,前后保持一致就可。BS Contact插件支持的文件格式常用的图片、音频、

视频、3D模型文件等等比较多,感兴趣的朋友可以测试一些。

像导出Excel的操作《》也是很不错的。

通过文件流形式输出文件的方式实现文件的展示,也同样支持其他常用格式文件的输出,如Flash文件、3D模型文件、PDF文件、Excel

文件等等,常用有如下格式:

按照内容类型排列的 Mime 类型列表:参见《》

按照内容类型排列的 Mime 类型列表:

类型/子类型

application/envoy

application/fractals

application/futuresplash

application/hta

application/mac-binhex40

扩展名

evy

fif

spl

hta

hqx

application/internet-property-streamacxapplication/mswordapplication/mswordapplication/octet-streamapplication/octet-streamapplication/octet-streamapplication/octet-streamapplication/octet-streamapplication/octet-streamapplication/octet-streamapplication/odaapplication/olescriptapplication/pdfapplication/pics-rulesapplication/pkcs10application/pkix-crlapplication/postscriptapplication/postscriptapplication/postscriptapplication/rtfapplication/set-payment-initiationapplication/-excelapplication/-excelapplication/-excelapplication/-excelapplication/-excelapplication/-excelapplication/-outlookapplication/-pkicertstoreapplication/-pkiseccatapplication/-pkistlapplication/-powerpointapplication/-powerpointapplication/-powerpointapplication/-projectapplication/-worksapplication/-worksapplication/-worksapplication/-worksapplication/winhlpapplication/x-bcpioapplication/x-cdfapplication/x-compressapplication/x-compressedapplication/x-cpioapplication/x-cshapplication/x-directorapplication/x-directorapplication/x-directorapplication/x-dviapplication/x-gtarapplication/x-gzipapplication/x-hdfapplication/x-internet-signupapplication/x-internet-signupapplication/x-iphoneapplication/x-javascriptapplication/x-latexapplication/x-msaccessapplication/x-mscardfileapplication/x-msclipapplication/x-msdownloadapplication/x-msmediaviewapplication/x-msmediaviewapplication/x-msmediaviewdocdot*binclassdmsexelhalzhodaaxspdfprfp10crlaiepspsrtfsetpayxlaxlcxlmxlsxltxlwmsgsstcatstlpotppspptmppwcmwdbwkswpshlpbcpiocdfztgzcpiocshdcrdirdxrdvigtargzhdfinsispiiijslatexmdbcrdclpdllm13m14mvbapplication/set-registration-initiationsetregapplication/x-msmetafileapplication/x-msmoneyapplication/x-mspublisherapplication/x-msscheduleapplication/x-msterminalapplication/x-mswriteapplication/x-netcdfapplication/x-netcdfapplication/x-perfmonapplication/x-perfmonapplication/x-perfmonapplication/x-perfmonapplication/x-perfmonapplication/x-pkcs12application/x-pkcs12application/x-pkcs7-certificatesapplication/x-pkcs7-certificatesapplication/x-pkcs7-certreqrespapplication/x-pkcs7-mimeapplication/x-pkcs7-mimeapplication/x-pkcs7-signatureapplication/x-shapplication/x-sharapplication/x-shockwave-flashapplication/x-stuffitapplication/x-sv4cpioapplication/x-sv4crcapplication/x-tarapplication/x-tclapplication/x-texapplication/x-texinfoapplication/x-texinfoapplication/x-troffapplication/x-troffapplication/x-troffapplication/x-troff-manapplication/x-troff-meapplication/x-troff-msapplication/x-ustarapplication/x-wais-sourceapplication/x-x509-ca-certapplication/x-x509-ca-certapplication/x-x509-ca-certapplication/-pkipkoapplication/zipaudio/basicaudio/basicaudio/midaudio/midaudio/mpegaudio/x-aiffaudio/x-aiffaudio/x-aiffaudio/x-mpegurlaudio/x-pn-realaudioaudio/x-pn-realaudioaudio/x-wavimage/bmpimage/cis-codimage/gifimage/iefimage/jpegimage/jpegimage/jpegwmfmnypubscdtrmwricdfncpmapmcpmlpmrpmwp12pfxp7bspcp7rp7cp7mp7sshsharswfsitsv4cpiosv4crctartcltextexitexinforoffttrmanmemsustarsrccercrtderpkozipausndmidrmimp3aifaifcaiffm3uraramwavbmpcodgifiefjpejpegjpgimage/pipeg

image/svg+xml

image/tiff

image/tiff

image/x-cmu-raster

image/x-cmx

image/x-icon

image/x-portable-anymap

image/x-portable-bitmap

image/x-portable-graymap

image/x-portable-pixmap

image/x-rgb

image/x-xbitmap

image/x-xpixmap

image/x-xwindowdump

message/rfc822

message/rfc822

message/rfc822

text/css

text/h323

text/html

text/html

text/html

text/iuls

text/plain

text/plain

text/plain

text/plain

text/richtext

text/scriptlet

text/tab-separated-values

text/webviewhtml

text/x-component

text/x-setext

text/x-vcard

video/mpeg

video/mpeg

video/mpeg

video/mpeg

video/mpeg

video/mpeg

video/quicktime

video/quicktime

video/x-la-asf

video/x-la-asf

video/x-ms-asf

video/x-ms-asf

video/x-ms-asf

video/x-msvideo

video/x-sgi-movie

x-world/x-vrml

x-world/x-vrml

x-world/x-vrml

x-world/x-vrml

x-world/x-vrml

x-world/x-vrml

jfif

svg

tif

tiff

ras

cmx

ico

pnm

pbm

pgm

ppm

rgb

xbm

xpm

xwd

mht

mhtml

nws

css

323

htm

html

stm

uls

bas

c

h

txt

rtx

sct

tsv

htt

htc

etx

vcf

mp2

mpa

mpe

mpeg

mpg

mpv2

mov

qt

lsf

lsx

asf

asr

asx

avi

movie

flr

vrml

wrl

wrz

xaf

xof

当然,上面的代码还可以优化。根据这个表做一个文件类型与输出类型的对照字典集合,给一个文件路径,字符串截取取得其扩展名,然后

根据其扩展名查找对应的输出类型。这样就根据文件自动查找输出的文件类型格式了,少些很多代码。