Процессы имеют ограниченный объем доступного стекового пространства - намного меньше, чем объем памяти, доступный для malloc()
.
Используя alloca()
, вы резко увеличиваете свои шансы на получение ошибки переполнения стека (если вам повезет, или необъяснимого сбоя, если нет).
Проведя несколько минут в Firebug, на самом деле есть несколько способов решить эту проблему. Например, мне удалось получить список файлов из самого fileObject:
var file = $("#control").attr("files")[0];
var fileName = file.fileName;
var fileSize = file.fileSize;
alert("Uploading: "+fileName+" @ "+fileSize+"bytes");
Ясно, что я могу прочитать значения для сериализации. Но письмо - это другой вопрос.
Но, очевидно, это не так просто, как утверждают другие. Я взял на себя смелость загрузить исходный код Prototype и не смог узнать, где находятся инструкции по использованию данных FileList для объекта загрузки файла.
Фактически, я нашел в Интернете статью, в которой были перечислены проблемы с сериализацией объекта загрузки файла. сам, утверждая, что ни одна библиотека AJAX не справилась с этим хорошо (заметьте, это было написано в 2007 году). Тем не менее, эта тема интересна, и кажется, что вы можете разработать любое количество методов для извлечения данных из загрузки файла - сама спецификация содержит достаточно информации, которая поможет вам пройти этот путь.
ответ о том, как вы можете писать и добавлять файлы в список файлов, но на данный момент я так же потерялся, как и вы (или был в момент, когда задавал этот вопрос). Если почитать немного больше, это может оказаться намного проще, чем я подозреваю, но на данный момент я этого не делаю. У меня есть время инвестировать.
Желаем удачи.
Это новая функция в FireFox 3.
Ознакомьтесь с http://blog.igstan.ro/2009/01/pure-javascript-file-upload.html