jfinal 要怎么获取js里的对象里的文件(在线等急)

blob.pngblob.pngblob.pngblob.pngblob.png获取到0个文件

评论区

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

只是你前端传没获取到文件而已吧

热门反馈

扫码入社