如何从具有ASPX扩展名的URL提供图像?

时间:2011-01-26 11:15:07

标签: c# asp.net urlrewriter

有人可以告诉你如何创建这种网址

例如,如果您看到网址

http://office.microsoft.com/global/images/default.aspx?assetid=ZA103873861033

您将重定向到图片..

我的问题是,虽然这个url是一个图像..扩展名是aspx ..它是否可能。 如何创建这种网址

由于

5 个答案:

答案 0 :(得分:4)

通过在服务器的响应中设置ContentType

  HttpContext.Response.ContentType = "image/jpeg";

答案 1 :(得分:4)

这是显示在数据库中存储为二进制对象的图像的常用方法。其中一个教程可以找到here

基本上,他们正在做的是使用aspx页面接受URL参数,该参数告诉他们从数据库中获取什么图像。然后在响应中清除所有输出和标题,设置图像的标题,将二进制数据写入响应流,并关闭响应流。

所以它并没有真正“重定向”你的形象。被请求的“页面”原来是响应中的图像资源。

答案 2 :(得分:0)

最简单的方法是添加通用处理程序* .ashx,在ashx文件中你将拥有代码,你可以获取查询字符串并操纵响应,例如。 Response.WriteFile(...)

答案 3 :(得分:0)

文件扩展名在WWW上没有任何意义。正确描述特定URL上的内容的是内容类型/ MIME-type。当在传递主HTTP有效负载之前请求URL时,这将在HTTP header中提供。其他答案描述了如何在ASP.NET中正确设置它。

答案 4 :(得分:0)

除了所有其他答案之外,他们可能正在对图像文件执行Server.Transfer()(以便您不会将其视为客户端)。这仍然意味着响应标头被设置为适当的MIME类型,但它也意味着图像不是来自数据库。此技术可用于隐藏实际图像URL以防止热链接。