3

有人可以告诉如何创建这样的网址

例如,如果您看到 url

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

您将重定向到图像..

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

谢谢

4

5 回答 5

4

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

  HttpContext.Response.ContentType = "image/jpeg";
于 2011-01-26T11:18:58.683 回答
4

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

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

因此,这并不是真正将您“重定向”到图像。被请求的“页面”原来是响应中的图像资源。

于 2011-01-26T11:19:02.703 回答
0

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

于 2011-01-26T11:18:39.020 回答
0

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

于 2011-01-26T11:26:33.033 回答
0

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

于 2011-01-26T12:03:03.410 回答