如何正确 URL 重写图像? C# ASP.NET

Posted

技术标签:

【中文标题】如何正确 URL 重写图像? C# ASP.NET【英文标题】:How do i URL rewrite an image properly? C# ASP.NET 【发布时间】:2010-11-04 23:17:14 【问题描述】:

我尝试了几种方法来重写 URL。图像 mime 被破坏的第一种方式被认为是一个八位字节流,它不允许我在浏览器中查看图像(除非它使用 img src)。第二种方法我不相信它有效。 Firefox 显示了 img,但表示长度为 0(我认为它只在我的缓存中有效)。

如何正确地将图像 /abc/id/title.png 重写到内部位置 /static/user/name/id.png

【问题讨论】:

@Daniel A. White:我不确定。我通过 global.asax 调用我的 C# 代码。我不知道 Webforms 或 MVC 是什么。 您能否发布代码/配置以显示您当前如何尝试进行 URL 重写? Webforms 是一个标准的 asp.net Web 应用程序。如果它是 ASP.NET MVC,这意味着你去 ASP.NET 并下载了 MVC 框架(除非你在一个非常新的 SP 上或使用 VS10?)。在选择要创建的网站类型时,它们是单独的模板。你的网址是说 domain/webpage.ASPX 还是说 domain/webpage ?? 你只是一遍又一遍地重复同一个问题。你应该展示你到目前为止的进步,否则你只会一遍又一遍地得到相同的答案。 安德鲁·西默:msvs9/2008。它说 localhost:port/default.aspx 听起来我正在使用 webforms 但我所拥有的只是 default.aspx 来打印一些调试信息,我重写并处理来自的请求的lazy.aspx 和重写路径的 global.asax我习惯了lazy.aspx。我实际上并没有使用任何形式或任何东西。我的 DLL 中的所有 C# 代码 【参考方案1】:

在 ASP.NET 中,我可能会这样做:

Response.Clear();
Response.ContentType = profile.AvatarMimeType;
Response.BinaryWrite(profile.Avatar.ToArray());

其中 profile.AvatarMimeType 是适合 gif、jpeg 或 png 的 mime 类型。

其中 profile.Avatar.ToArray() 是来自数据库的二进制内容,作为数据数组发送出去!

【讨论】:

我没有在 ASP.NET MVC 中尝试过这个,但我认为它应该仍然可以工作,因为 URL 只是将您带到执行此代码的资源。

以上是关于如何正确 URL 重写图像? C# ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET:图像 URL 正确,但图像不显示

ASP.NET URL 重写

如何使用 url 重写将位置数据存储在我的 asp.net 站点上所有页面的 url 中?

在 ASP.NET 中重写 URL?

如何在 asp.net 中将 URL 重写为子域而不实际在服务器上创建子域

ASP.NET如何获取url参数