JFinal

登录 注册

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

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

评论

  • 03-11 17:02
    在后端,jfinal 对上传文件只有一种操作,那就是 getFile() 或者 getFiles()

    获取不到上传文件是因为前端发送不正确,最简单的方式就是表单提交, form 表单中添加一个 enctype="multipart/form-data",并且使用 type="file" 的 input 即可

    而所谓的 ajax 上传文件,仅仅是将表单提交交给 js 操作一下而已

    因此,后端用上 getFile() 系列方法,然后所有精力全放在前端去解决问题就好
  • 03-11 17:07
    @JFinal 我用的图片预览,input file就一个 图片格式是这样的:blob:http://localhost:8080/bb849cbb-06b4-45c5-aba1-24f361f67e79,我把file放在数组里了,上传的数组,但是后台获取不到
  • 03-11 17:22
    @hzh740053757 先用纯 form 表单,添加 type="file" 的 input 域去试,试好了以后再转成 javascript,递进式解决
  • 03-11 18:02
    @JFinal Parameter : goodsObj=[object Object] 传回来的是这样的要怎么解析
  • 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 请求就是这个行为
  • 03-11 18:23
    ajax 文件上传建议用 jquery form 这个组件,可以忘掉 ajax 这件事情,专注表单,jquery form 会接管你的表单提交

    可以进入 http://jfinal.com/login 这个页面,获取到 jfinal 社区对 jquery form 使用的具体代码
  • 03-11 18:25
    最后,如果你的页面如果没有表单,也可以用 jquery form,具体看一下它的文档,我记得它是有 api 支持的,即便没有,也可以动态构建 form 表单实现 ajax 上传
  • 03-12 09:21
    只是你前端传没获取到文件而已吧
  • 发送