Межсайтовая загрузка файлов с проверкой формы

Я хотел бы загрузить файл на удаленный сервер из какой-либо формы в iframe. Но перед отправкой формы я хотел бы проверить, действительна ли она с использованием встроенных систем Django. Итак, сначала как загрузить файл на удаленный сервер без перенаправления. Мне нужно только указать пустой iframe в качестве цели формы? И, во-вторых, как обернуть отправку, я не знаю, может быть, какое-то событие ajaxSubmit, чтобы оценить форму и только тогда, когда она действительна, а затем выполнить саму отправку (поэтому, вероятно, функция должна возвращать True и т. д.)?


person decarbo    schedule 16.11.2010    source источник


Ответы (1)


Возможно, я неправильно понимаю ваш вопрос, но похоже, что вы хотите использовать проверку формы на основе сервера Django для данных, введенных в форму. Единственный способ сделать это — отправить форму на сервер Django.

Обычно способ загрузки файла на «удаленный» сервер заключается в отправке формы и предоставлении этому удаленному серверу обработки отправки формы (включая содержимое файла). Если удаленный сервер также основан на django, вы можете использовать ту же проверку (при условии, что вы не используете CSRF, то есть -- я не уверен, можно ли использовать CSRF для указания на другой сервер, в основном потому, что это часть всей сути CSRF).

Итак, какова ваша настоящая цель? Есть ли какой-то второй сервер (не django), которому нужен файл? Если это так, я бы обработал загрузку на сервере Django и выполнил проверку, а затем использовал соединение, такое как ftp, sftp, scp и т. д., чтобы скопировать файл на другой сервер.

Кроме того, вы можете написать свой собственный JavaScript (или существующий JS-фреймворк) для проверки формы, а затем отправить форму на удаленный сервер.

Между прочим, нет необходимости использовать iframe (пустой или нет). Это необходимо только в том случае, если ваша цель — выполнить асинхронную отправку файла, не покидая страницу.

person Jordan Reiter    schedule 17.11.2010