请教文件上传的问题

@JFinal

看了club中的代码,并看了下源码。请问是不是调用getFile方法后就已经完成的上传操作?图片上传时getFile传入个参数"/img/temp",这里面的图片是不是要做删除操作?


另外ueditor的配置文件config.jsp中格式化路径的配置是不是已经不起作用了?

谢谢


评论区

JFinal

2017-11-06 15:10

getFile 方法后,文件上传已经完成,club 项目中没有做删除操作,而是直接将文件改名并移动了目录,这样比 copy 再删除要快得多

club 整合的 ueditor,是完全不需要 config.jsp 的,因为 config.jsp 中要返回的响应在 UploadController 中已经接管了

guanxb

2017-11-06 17:18

@JFinal 也就是说那个请求ueditor的action=config的处理完全就是保证兼容不报错而已,没有实际意义的,是这样吧

还有个问题是:ue上传调用接口时,在项目中是先取得参数再调用的getFile,但还是能取得参数,是不是因为ue传参是以问号挂参的形式传递的
谢谢

JFinal

2017-11-06 17:30

@guanxb ueditor 发起的一个问号挂参请求 "?action=config" 这个是向后端索要配置文件,而 jfinal club 中的 UploadController 中做了如下处理:
if ("config".equals(getPara("action"))) {
render("/assets/ueditor/jsp/config.json");
return;
}
也就是说带有这个参数的请求仅仅是索要配置内容而已,并不是真正的文件上传,所以也就不存在可以先调用用 getPara 后调用 getFile 这个说法了,因为这个请求根本就不是文件上传

问号挂参应该也是需要先 getFile 后 getpara 的,这个你再测试一下,貌似也可以先 getPara,测试结果分享出来

不过有一点可以肯定的,如果传参是用的 urlPara 的形式,可以先 getPara 后 getFile,例如 localhost/project/update/123,这个 url 中的 123 就是 urlPara,这个可以先 getPara(0) 后 getFile

guanxb

2017-11-07 08:28

@JFinal 是的,在url中传参是可以先getPara取到的,不受getFile的限制,我试的是问号挂参的形式,rest形式没试。所以和你确定一下ue是否也采用了这个模式,对ue不熟悉,js代码读起来感觉费事。 上传文件时不还有个action=uploadimage和uploadType的参数吗,这两个应该是和uploadFile一起的吧

JFinal

2017-11-07 10:04

@guanxb 我只记得还有一个 uploadType参,这个参数在 jfinal club 项目中应该是用的问号挂参,所以可以在 getFile 之前通过 getPara 获取到,这样就更方便做处理

guanxb

2017-11-07 10:38

@JFinal 那就对上,谢谢

JFinal

2017-11-07 10:42

@guanxb jfinal club 中有很多实用的细节,很多用法都是最简单有效的用法,节省无数时间

例如用一个 UploadController 接管了 ueditor 所有的上传功能,包括接管配置文件的响应,这样不仅可以干掉 JSP 文件还可以干掉 ueditor 的 jar 包

guanxb

2017-11-07 16:45

@JFinal
了解了。谢谢
// 上传时在 url 中用问号挂参的方式添加额外的参数 uploadType,用于分类管理图片
ue.ready(function() {
ue.execCommand('serverparam', {
'uploadType': 'feedback'
});
});
自定义的参数写在这里面就会以问号挂参的形式传递吗,这部分是ueditor源码实现的吗?

JFinal

2017-11-07 16:46

@guanxb ue.ready(...) 这个是 ureditor 提供的 API,用好它规定的参数就可以了,例如 uploadType 这个就可以额外指定参数值,具体含义你可以自己决定