将二进制字符转换为jQuery可以使用的东西

时间:2010-12-20 16:38:14

标签: c# javascript jquery

我正在使用HttpResponse类的BinaryWrite方法来获取网页。

类似于示例...

FileStream MyFileStream;
long FileSize;

MyFileStream = new FileStream("APage.html", FileMode.Open);
FileSize = MyFileStream.Length;

byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();

Response.BinaryWrite(Buffer);

然后我使用jQuery ajax方法来获取响应。但是我无法用它做任何事 - 所以如果我有......

$.ajax({
    type: "GET",
    url: "GetUrl.Proxy",
    data: { url: 'http://www.example.org/test.html' },
    success: function(data) {
        $('iframe').contents().find('html body').html(data.toString());
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert(errorThrown);
    }
 });

这会返回一个二进制字符流,我想要的是jQuery可以用来设置html元素的东西。

1 个答案:

答案 0 :(得分:2)

首先设置内容类型:

Response.Clear();
Response.ContentType = "text/html";
...

回答查找文件内容类型的问题:

string mt = "application/unknown";
string ext = Path.GetExtension(filename).ToLower();
var regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (regKey != null) {
  var tempMt = regKey.GetValue("Content Type");
  if (tempMt != null) {
    tempMt = regKey.GetValue("Content Type").ToString();
  }
}

就个人而言,我可能只是用可能的扩展和类型做一个switch语句......