2010-07-01 26 views
0

我需要用jquery上传文件。 我现在关于uploadify插件,但我不想为它使用这么大的插件。用jquery上传文件

我有一个想法,我该怎么做,你能告诉我它会工作吗?

如果我通过ajax将<input type="value">输入的值作为javascript变量传递给some.php文件,然后进行上传,它会工作吗?

谢谢?

回答

2

如果没有Flash的帮助,JavaScript无法自行上传文件,这就是为什么您需要类似Uploadify或SWFUpload来完成这项工作的原因。

解决方法选项可能会使用不可见的iframe您使用表单的target属性进行上载。将工作的传统方式,但用户可以留在当前页面:

<form target="iframe_id" .... 
+0

你能给我一个关于iframe这样的用法的链接吗? – Simon 2010-07-01 10:02:49

+0

@Syom真的很简单:让一个带有ID的IFrame,并将窗体的目标设置为该ID。如果你需要更多的细节,我认为@andy在他的回答中有很好的联系。 – 2010-07-01 11:05:18

2

我假设的原因您希望这样做是为了让您可以在上传完成后(例如,带图像的缩略图),具有异步样式的文件上传并显示有关上传文件的信息。 jQuery From Plugin页面有一个选项,其中包含iframe uploads,看起来不错。

我也使用了Ajax IFrame Method,它运行良好,但没有被构建为jQuery插件。虽然它玩的很好。

基本上这些插件都是做什么的,是附加onsubmit事件处理程序到您的窗体。提交表单时,插件捕获事件,在页面上创建隐藏的iframe,从提交表单中克隆表单字段,然后提交。结果是原始表单数据被提交,但用户可见页面不必定向到表单操作中的url。

当然,一旦iframe表单完成提交,您可以触发回调并执行任何需要的提交后脚本。我链接到上面的ajax iframe方法对此有很好的文档。