2023年12月7日发(作者:)
Web页面常用文件格式文件流的输出
今天,我的同事、同学、朋友老曲过生日,玩的有点晚了,以后在和朋友一起出去玩,尽量多吃饭少喝酒。前段时间,碰到一个如何进行用
流文件的形式输出文件的问题,没有找到好方法。我的同事、同学、朋友小朝,给我提供了很不错的建议,使用一般处理程序处理文件以文
件流的形式输出,并将其指向对应的地址(URL或Src)。简单的测试程序:
2010建立一个空白 Web项目,新建一个ASPX页面()输入如下代码:
(该文件包含一个图片显示标签、Windows Media Player播放器插件、BS Contact Control插件调用)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="" Inherits="yer" %>
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
当然,上面的代码还可以优化。根据这个表做一个文件类型与输出类型的对照字典集合,给一个文件路径,字符串截取取得其扩展名,然后
根据其扩展名查找对应的输出类型。这样就根据文件自动查找输出的文件类型格式了,少些很多代码。


发布评论