2010-11-16 101 views
0

跨站點文件上傳我想在iframe某種形式的文件上傳到遠程服務器。但在提交表單之前,我想用Django的內置系統檢查它是否有效。所以首先如何在不重定向的情況下將文件上傳到遠程服務器。我是否只需要指定空的iframe作爲表單的目標?其次如何環繞submition我不知道,也許有些ajaxSubmit的事件,評價形式,當它是唯一有效的,然後執行提交本身(所以大概函數應該返回True等)?與表單驗證

回答

0

也許我沒有正確理解你的問題,但它聽起來像你想使用表單中輸入的數據使用Django的基於服務器的表單驗證。做到這一點的唯一方法是實際將表單提交給Django服務器。

通常情況下,將文件上傳到「遠程」服務器的方式是通過提交表單並讓該遠程服務器處理表單提交(包括文件內容)。如果遠程服務器也Django的基礎,你可以使用相同的驗證(假設你沒有使用CSRF那就是 - 我不能確定它是否可以使用CSRF指向另一個服務器,主要是因爲這是CSRF整個部分的一部分)。

那麼,什麼是你真正的目標是什麼?是否有第二臺服務器(不是django的)需要該文件?如果是的話,我會處理Django的服務器上上傳和執行驗證,然後使用如FTP,SFTP,SCP等連接到該文件在複製到其他服務器。

或者,您可以編寫自己的JavaScript(或現有JS框架)來驗證表單,然後將表單提交到遠程服務器。順便說一下,不需要使用iframe(空或不)。如果您的目標是在不離開頁面的情況下執行文件的異步提交,那麼這是必需的。