0

iframe の何らかのフォームからリモート サーバーにファイルをアップロードしたいと考えています。しかし、フォームを送信する前に、Django の組み込みシステムを使用してフォームが有効かどうかを確認したいと思います。まず、リダイレクトせずにファイルをリモート サーバーにアップロードする方法を説明します。フォームのターゲットとして空の iframe を指定するだけでよいですか? そして第二に、私が知らない送信をラップする方法、おそらくいくつかのajaxSubmitイベントで、フォームを評価し、それが有効な場合にのみ送信を実行してから送信自体を実行します(おそらく関数はTrueなどを返す必要があります)?

4

1 に答える 1

0

あなたの質問を正しく理解していないかもしれませんが、フォームに入力されたデータに対して Django のサーバーベースのフォーム検証を使用したいようです。これを行う唯一の方法は、実際にフォームを Django サーバーに送信することです。

通常、「リモート」サーバーにファイルをアップロードする方法は、フォームを送信し、そのリモート サーバーにフォーム送信 (ファイル コンテンツを含む) を処理させることです。リモートサーバーもdjangoベースの場合、同じ検証を使用できます(CSRFを使用していないと仮定すると、つまり、CSRFを使用して別のサーバーを指すことができるかどうかはわかりません。 CSRF のポイント全体の一部)。

では、あなたの本当の目標は何ですか?ファイルを必要とする 2 番目のサーバー (django サーバーではない) はありますか? その場合、Django サーバーでアップロードを処理して検証を実行し、ftp、sftp、scp などの接続を使用してファイルを他のサーバーにコピーします。

または、独自の JavaScript (または既存の JS フレームワーク) を記述してフォームを検証し、フォームをリモート サーバーに送信することもできます。

ちなみに、iframe (空であろうとなかろうと) を使用する必要はありません。これは、ページを離れずにファイルの非同期送信を行うことが目標である場合にのみ必要です。

于 2010-11-17T03:55:33.763 に答える