Как передать содержимое файла изображения из управления загрузкой файла в веб-метод через JavaScript? - PullRequest
0 голосов
/ 30 ноября 2009

У меня проблема с использованием двоичного содержимого файла. Я хочу передать содержимое веб-метода файла. Я получил его из файла управления загрузкой на моей странице с помощью функции JavaScript getAsBinary (). Но ошибка появляется в веб-методе, когда я пытаюсь создать пример класса Image. Итак, у меня есть страница (.aspx) с контролем загрузки файлов и менеджером сценариев. Есть три функции JavaScript:

// Get image from fileupload control and pass it in webmethod
function Get_image() {
    var file_uploader = document.getElementById(file_uploader_name);
    var file_content = file_uploader.files[0].getAsBinary();
    imupcon.Get_image(file_content, OnRequestComplete, OnError);
}
// Successful execution
function OnRequestComplete(result) {alert(result);}
//Error execution
function OnError() { alert("Error!");}

И у меня есть веб-сервис с веб-методом:

[WebMethod]
public string Get_image(string file_content, string file_name) 
{
 byte[] data = Encoding.Unicode.GetBytes(file_content);
 MemoryStream memStream = new MemoryStream();
 memStream.Write(data, 0, data.Length);

 //Error appears here
 System.Drawing.Image image = System.Drawing.Image.FromStream(memStream);

 memStream.Close();
 return "Hurray!";
}

Кто-нибудь имеет представление, что такое причина? Как я могу передать содержимое файла в веб-метод? Спасибо.

1 Ответ

1 голос
/ 30 ноября 2009

Вам не нужно Encoding.Unicode.GetBytes, если оно уже в двоичном виде. Данные будут в Unicode, если вы позвоните files[0].getAsText("utf-8"). Обратите внимание, что все эти методы теперь устарели , и вы должны использовать функцию обнаружения и использовать стандартный API FileReader , если он доступен.

...