multipart / form-data submit против text / xml response - PullRequest
1 голос
/ 01 августа 2011

Я использую скрипт Python для загрузки файлов на сервер. Форма загрузки обслуживается jQuery.form

HTML:

<form id="form_upload" enctype="multipart/form-data" action="py/uploader.py" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<input name="uploadedfile" type="file" />
<input type="submit" value="Upload" />
</form>

В конце процедуры загрузки я хочу, чтобы uploader.py вернул мне некоторую информацию о загруженном файле. Я возвращаю эту информацию в формате xml и позже хочу интерпретировать ее с помощью jQuery.

uploader.py:

# ...
# serve the file
return "<info size=\"%s\"></info>" % size

Тогда jQuery должен выглядеть так:

JQuery:

$("#form_upload").submit( function() {
    var options = {
        dataType: "xml",
        success: function(xml_response) { /*xml_response is the xml returned by uploader.py*/
            var size = $(xml_response).find("info").attr("size");
            // display size
            // ...
        }
    }

    $(this).ajaxSubmit(options);
    return false;
});

Теперь проблема в том, что xml_response не распознается как мой xml: вместо созданной мной строки я получаю

<pre style="word-wrap: break-word; white-space: pre-wrap;"> here my xml, escaped </pre>

Если enctype в form было text/xml, то функция success получает правильный объект xml, но загрузка файла невозможна. Как это решить?

...