通过表单验证上传跨站点文件

时间:2010-11-16 19:16:48

标签: django file-upload form-submit cross-site

我想从iframe中的某种形式上传文件到远程服务器。但在提交表单之前,我想使用Django的内置系统检查它是否有效。首先,如何在不重定向的情况下将文件上传到远程服务器。我只需要将空iframe指定为表单的目标吗?其次如何包装我不知道的submition,也许是一些ajaxSubmit事件,来评估表单,只有当它有效然后执行提交本身(所以函数应该返回True等)?

1 个答案:

答案 0 :(得分:0)

也许我没有正确理解你的问题,但听起来你想要对表格中输入的数据使用Django基于服务器的表单验证。唯一的方法是将表单实际提交给Django服务器。

通常,将文件上传到“远程”服务器的方法是提交表单并让该远程服务器处理表单提交(包括文件内容)。如果远程服务器也是基于django的,您可以使用相同的验证(假设您没有使用CSRF - 我不确定是否可以使用CSRF指向另一台服务器,主要是因为这是CSRF整体观点的一部分。)

那么,你的真正目标是什么?是否有一些需要该文件的第二台服务器(不是django)?如果是这样,我将在Django服务器上处理上传并执行验证,然后使用ftp,sftp,scp等连接将文件复制到另一台服务器。

或者,您可以编写自己的JavaScript(或现有的JS框架)来验证表单,然后将表单提交给远程服务器。

顺便说一句,没有必要使用iframe(空或不)。只有当您的目标是在不离开页面的情况下进行文件的异步提交时,才需要这样做。