Загрузка файла с использованием метода PrototypeJs $ ('formId'). Request () - PullRequest
1 голос
/ 28 февраля 2010

Я пытался загрузить файл (ы), используя метод запроса PrototypeJs, но мне не удалось.

код, который я использую,

<form enctype="multipart/form-data" id="form1" runat="server" action="ajax.aspx"
onsubmit="upMe(this);return false;" >

Если я возвращаю true вместо false, файл загружается, но это делает обратную передачу, которую я не хочу, поскольку использую запрос метода от PrototypeJs.

А функция upMe очень проста,

function upMe(frmEle) {
        $(frmEle).request({
            method: 'post',
            parameters: {},
            onComplete: function() { alert('file has been uploaded'); }
        });
    }

Что мне не хватает, чтобы загрузить файл вышеуказанным способом?

Большое спасибо.

1 Ответ

3 голосов
/ 28 февраля 2010

Проблема в том, что вы используете AJAX вместо обычных методов отправки для отправки формы. Для этого потребуется JavaScript, чтобы прочитать файл и включить его в представление, но, как вы можете себе представить, возможность сценария считывать локальный файл с клиента будет довольно большой угрозой безопасности: -)

Ответом на эту проблему является использование скрытого элемента <iframe> и отправка запроса на него. Вы можете зарегистрировать обработчики событий для события onload iframe для обратного вызова в стиле oncomplete.

http://www.openjs.com/articles/ajax/ajax_file_upload/

...