首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在加载或ajax - WEB2PY中使用<input type="file">发送

如何在加载或ajax - WEB2PY中使用<input type="file">发送
EN

Stack Overflow用户
提问于 2017-01-07 02:28:25
回答 1查看 276关注 0票数 0

有没有什么简单的方法可以通过输入的type=“文件”从.load视图发送文件到我的控制器?或者,有没有办法用JQuery做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2017-01-07 06:17:49

默认情况下,Ajax LOAD()组件中的表单将被捕获并通过Ajax提交。但是,用于提交的方法不适用于文件上传。相反,您可以通过向表单元素添加"no_trap“类并设置自己的表单提交处理程序来覆盖默认行为。

在包含表单的视图中:

代码语言:javascript
运行
复制
<form id="upload_form" class="no_trap">...</form>

或者,如果表单是在控制器中生成的:

代码语言:javascript
运行
复制
form = SQLFORM(..., _id='upload_form', _class='no_trap')

在包含组件的视图中,添加一个显式的"target“(供以后参考):

代码语言:javascript
运行
复制
{{=LOAD('mycontroller', 'myfunction.load', ajax=True, target='upload_form')}}

要处理文件上传,可以使用FormData接口。有关一些想法,请参阅http://blog.teamtreehouse.com/uploading-files-ajax。您还可以考虑使用库,例如jQuery File Upload

一旦构建了FormData,就可以按如下方式发布到web2py:

代码语言:javascript
运行
复制
$.web2py.ajax_page('post', url, formData, 'upload_form', form)

其中url是Ajax组件的URL,formData是通过表单提交处理程序构造的FormData对象,form是jQuery表单对象(即$('form#upload_form'))。这将把表单数据发送到URL,并用返回的超文本标记语言替换"upload_form“目标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41512000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档