Cra*_*aig 9 c# asp.net imaging
我正在制作一个小家庭相册,打算可以打开其他人以便以后存储图像.
我将图像上传到〜\ images \,然后将它们调整大小3次(普通视图...缩略图和小版本)并将它们移动到〜\ images\thumbs,〜\ images \normal,〜\ images\tiny然后将原稿移动到〜\ images\original.
如果用户知道文件名,他们可以直接访问http://mysite.com/images/normal/filename.jpg进行直接访问.
我宁愿不让他们使用.
那么,有没有办法改变asp:Image控件的ImageUrl,而不是从不可访问的文件夹中读取?这会是一次性能打击吗?我想的是(不确定是否可能)将图像读入Steam,并以某种方式设置ImageUrl或者什么,从流中读取?
希望你能提供帮助.
com*_*ech 10
答案是肯定的.您可以使用特殊格式的img src,它将图像直接嵌入页面中.
您将使用以下格式代替URL:
<img src="data:image/png;base64,..." />
Run Code Online (Sandbox Code Playgroud)
data指定图像的mime类型,base64之后的...是图像的base64编码内容.
此行为由此RFC定义.
这是一个例子:
在HTML中:
<img id="MyPicture" runat="server" border="0" />
Run Code Online (Sandbox Code Playgroud)
在代码隐藏中:
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));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7397 次 |
最近记录: |