c# - 显示来自 Respose.WriteFile()/Response.ContentType 的广告内容

标签 c#

如何显示来自“动态”aspx 页面的任何添加内容?目前,我正在使用 System.Web.HttpResponse“Page.Response”将存储在 Web 服务器上的文件写入 Web 请求。

这将允许人们点击类型为 http://www.foo.com?Image=test.jpg 的 url并在他们的浏览器中显示图像。因此,您可能知道这围绕 Response.ContentType 的使用展开。

通过使用

Response.ContentType = "application/octet-stream";

我能够显示 gif/jpeg/png 类型的图像(到目前为止我测试过的所有图像),尝试显示 .swf 或 .ico 文件时出现了一个小错误。

使用

Response.ContentType = "application/x-shockwave-flash";

我可以获取 flash 文件来播放,但随后图像就乱七八糟了。

那么我如何轻松选择内容类型呢?

最佳答案

这很丑陋,但最好的方法是查看文件并适本地设置内容类型:

switch ( fileExtension )
{
    case "pdf": Response.ContentType = "application/pdf"; break; 
    case "swf": Response.ContentType = "application/x-shockwave-flash"; break; 

    case "gif": Response.ContentType = "image/gif"; break; 
    case "jpeg": Response.ContentType = "image/jpg"; break; 
    case "jpg": Response.ContentType = "image/jpg"; break; 
    case "png": Response.ContentType = "image/png"; break; 

    case "mp4": Response.ContentType = "video/mp4"; break; 
    case "mpeg": Response.ContentType = "video/mpeg"; break; 
    case "mov": Response.ContentType = "video/quicktime"; break; 
    case "wmv":
    case "avi": Response.ContentType = "video/x-ms-wmv"; break; 

    //and so on          

    default: Response.ContentType = "application/octet-stream"; break; 
}

关于c# - 显示来自 Respose.WriteFile()/Response.ContentType 的广告内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234/

相关文章:

c# - 在没有 SolidColorBrush 的情况下从 Color 获取 Brush

c# - 将线程安全访问方法写入 Windows 窗体控件的最短方法

c# - 如何检测相机 FOV 内的所有游戏对象? Unity3D

c# - 自定义Json序列化

c# - GoToPlaylistItem 和 GoToPlaylistItemOnNextTick 有什么区别

c# - 仅从 DataGridView 的特定列获取文本

c# - 为什么我的复选框没有映射到 MVC 模型成员?

c# - 远程运行 powershell 命令时出错

c# - 使用 Razor 引擎的 ASP.NET MVC 3 中的 '/' 应用程序中的服务器错误

c# - Xamarin Forms 显示警报消失