如何使用webclient在c#中下载图像,并使用Javascript从aspx页面获取图像
本文关键字:图像 Javascript aspx 获取 webclient 何使用 下载 | 更新日期: 2023-09-27 18:21:10
我在这里和那里看到了这些问题的各种答案的片段,但我无法让它们中的任何一个发挥作用。
代码的目的是让我可以通过aspx页面从互联网上下载图像。因此,从Javascript中,我将调用aspx页面,它应该提供数据,然后我将数据输入到Image元素中,但到目前为止还没有骰子。
我目前正在尝试:在GetHotlink.aspx页面中:
System.Net.WebClient wc = new System.Net.WebClient();
byte[] data = wc.DownloadData("http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg");
Context.Response.Clear();
Context.Response.ContentType = "image/JPEG";
Context.Response.OutputStream.Write(data, 0, data.Length);
Context.Response.Flush();
Context.Response.Close();
Context.Response.End();
和在Javascript中:
var url = "GetHotlink.aspx";
var tmptxt = call_genpic(url); // call server with filename and minimum layer value.
var imageObj = new Image();
imageObj.setAttribute('src', 'data:image/jpeg;base64,' + tmptxt);
document.body.appendChild(imageObj);
function call_genpic(url) {
var reqObj = createRequest();
reqObj.onreadystatechange = function () {
if (reqObj.readyState == 4) {
//callback
}
}
reqObj.open("GET", url, false);
reqObj.send(null);
var V = "";
V = reqObj.responseText;
return V;
return(reqObj.responseText);
}
我可以看到,当我调用aspx页面时,我从服务器上得到了一大块不错的数据,但我添加到DOM中的图像显示为损坏的图像图标。没有达斯·维德!我怀疑在这一过程中,达斯的格式有问题,或者标题有问题。有什么想法吗?
您使用base64数据作为图像源,但没有将响应编码为base64字符串。使用此方法可以将字节数组转换为字符串,并将其作为字符串而不是二进制数据返回给客户端。
此外,您的JavaScript代码看起来也一团糟。为什么你有两个接一个的退货。您应该创建图像并在回调中设置其数据(就在您有注释的地方)