首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal 要怎么获取js里的对象里的文件(在线等急)
hzh740053757
2018-03-11 16:37
获取到0个文件
项目:
JFinal
评论区
hzh740053757
2018-03-11 16:54
@JFinal
回复
JFinal
2018-03-11 17:02
在后端,jfinal 对上传文件只有一种操作,那就是 getFile() 或者 getFiles()
获取不到上传文件是因为前端发送不正确,最简单的方式就是表单提交, form 表单中添加一个 enctype="multipart/form-data",并且使用 type="file" 的 input 即可
而所谓的 ajax 上传文件,仅仅是将表单提交交给 js 操作一下而已
因此,后端用上 getFile() 系列方法,然后所有精力全放在前端去解决问题就好
回复
hzh740053757
2018-03-11 17:07
@JFinal
我用的图片预览,input file就一个 图片格式是这样的:blob:http://localhost:8080/bb849cbb-06b4-45c5-aba1-24f361f67e79,我把file放在数组里了,上传的数组,但是后台获取不到
回复
JFinal
2018-03-11 17:22
@hzh740053757
先用纯 form 表单,添加 type="file" 的 input 域去试,试好了以后再转成 javascript,递进式解决
回复
hzh740053757
2018-03-11 18:02
@JFinal
Parameter : goodsObj=[object Object] 传回来的是这样的要怎么解析
回复
JFinal
2018-03-11 18:21
@hzh740053757
后端获取参数只有三种类型,一种是文件上传用 getFile 获取流式数据
第二种是通过 getPara 获取 String,第三种是通过 getParaValues(key) 获取 String[]
表单传参除了文件以外,本质全是 String 类型
你的项目中是 Parameter : goodsObj=[object Object],key 是 “goodsObj",value 看起来是数组,但元素间没有逗号,可能就是一个 "[object Object]"的 String 而已
因此,试一下下面两个办法,获取一下参数:
getPara("goodsObj");
getParaValues("goodsObj");
当然,上面两个方法获取到的始终是 String 数据,http 请求就是这个行为
回复
JFinal
2018-03-11 18:23
ajax 文件上传建议用 jquery form 这个组件,可以忘掉 ajax 这件事情,专注表单,jquery form 会接管你的表单提交
可以进入 http://jfinal.com/login 这个页面,获取到 jfinal 社区对 jquery form 使用的具体代码
回复
JFinal
2018-03-11 18:25
最后,如果你的页面如果没有表单,也可以用 jquery form,具体看一下它的文档,我记得它是有 api 支持的,即便没有,也可以动态构建 form 表单实现 ajax 上传
回复
饺子包
2018-03-12 09:21
只是你前端传没获取到文件而已吧
回复
发送
我要反馈
热门反馈
扫码入社