我正在制作一个小家庭相册,打算稍后向其他人开放以存储图像。
我将图像上传到 ~\images\,然后调整它们大小 3 次(普通视图...缩略图和小版本)并将它们移动到 ~\images\thumbs、~\images\normal、~\images\tiny,然后将原件移动到 ~\images\original。
如果用户知道文件名,他们可以直接转到http://mysite.com/images/normal/filename.jpg http://mysite.com/images/normal/filename.jpg用于直接访问。
我不希望他们可以使用它。
那么,有没有办法更改 asp:Image 控件的 ImageUrl,而不是从不可访问的文件夹中读取?这会影响性能吗?我在想(不确定是否可能)将图像读入 Steam,并以某种方式设置 ImageUrl 或其他什么,以从流中读取?
希望您能帮忙。
答案是肯定的。您可以使用特殊格式的 img src ,它将图像直接嵌入到页面中。
您可以使用以下格式代替 URL:
<img src="data:image/png;base64,..." />
其中 data 指定图像的 mime 类型,base64 之后的 ... 是图像的 base64 编码内容。
此行为定义为this RFC http://www.ietf.org/rfc/rfc2557.txt.
这是一个例子:
在 HTML 中:
<img id="MyPicture" runat="server" border="0" />
在隐藏代码中:
protected void Page_Load(object sender, EventArgs e)
{
MyPicture.Src = @"data:image/gif;base64," + EncodeFile(Server.MapPath(@"/images/test.gif"));
}
private string EncodeFile(string fileName)
{
return Convert.ToBase64String(File.ReadAllBytes(fileName));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)