собственно нужно загружать файлы на сервак
в mozdev нашел статью https://developer.mozilla.org/en/FileGuide/FileUpDown

там собствено уже есть готовая процедура



Выделить код

Код:

function upload(file, posturl, name)
{
  var boundary = "--------XX" + Math.random();

  var req = new XMLHttpRequest();
  req.open("POST", posturl);
  req.setRequestHeader("Content-type", "multipart/form-data; boundary=" + boundary);
  req.setRequestHeader("Content-length", file.fileSize);
  req.onload = function(event) { alert(event.target.responseText); }

  var prefix = "--" + boundary + "\n" +
               "Content-Disposition: form-data; name=\"" + name + "\"; filename=\"" +
               file.leafName + "\"\n" +
               "Content-type: text/plain\n\n";
  var stream = IO.newInputStream(prefix, "multi");
  stream.appendStream(IO.newInputStream(file, ""));
  stream.appendStream(IO.newInputStream("\n--" + boundary + "\n", ""));

  req.send(stream);
}

но она не работает, а именно  сообщение TypeError: IO.newInputStream is not a function
использую firefox4
может кто подскажет в чем дело?

bidlocoder
Там же написано:

The pages from the File and Stream Guide use the IO object (nsIScriptableIO), which was not available in any released version of the platform

Эти методы пока не включены в Firefox.

Попробуйте использовать что-нибудь с https://developer.mozilla.org/en/using_ … plications

пользуйтесь интерфейсами напрямую (по памяти, работоспособность не проверял):

Выделить код

Код:

var stream = Components.classes["@mozilla.org/io/multiplex-input-stream;1"].createInstance(Components.interfaces.nsIMultiplexInputStream);

var data = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream);
data.setData(prefix, prefix.length);
stream.appendStream(data);

var data2 = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream);
data2.setData(file, file.length);
stream.appendStream(data2);

var data3 = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream),
    postfix = "\n--" + boundary + "\n";
data3.setData(postfix, postfix.length);
stream.appendStream(data3);