com.jfinal.cos 2022.2报错(new MultipartRe)

前端套了ruoyi,使用com.jfinal.cos 2020.4正常,升级为2022.2。会在cotroller使用getFile()时,调用Cotroller.class 的 new MultipartRequest强制转换报错:

Caused by: java.lang.NoSuchMethodError: com.oreilly.servlet.MultipartRequest.<init>(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;ILjava/lang/String;Lcom/oreilly/servlet/multipart/FileRenamePolicy;)V
    at com.jfinal.upload.MultipartRequest.wrapMultipartRequest(MultipartRequest.java:107)
    at com.jfinal.upload.MultipartRequest.<init>(MultipartRequest.java:58)
    at com.jfinal.core.Controller.getFiles(Controller.java:846)
    at com.jfinal.core.Controller.getFile(Controller.java:851)

自定义UploadController.java

uploadFile = getFile("file", UploadService.uploadTempPath, UploadService.imageMaxSize);

Cotroller.class:

List<UploadFile> () {
    (!(.MultipartRequest)) {
        .= MultipartRequest(.)}

    ((MultipartRequest).).getFiles()}

前端js

(fileobj) {
    data = ()data.(file)data.()data.().({
        : :  + : data: : : : : (result) {
            (result.== .) {
                (obj).(result.result.)} {
                ..(result.)}
        }: (error) {
            ..()}
    })}


评论区

GXS

2022-06-05 11:53

前端js
// 上传文件
function sendFile(file, obj) {
var data = new FormData();
data.append("file", file);
data.append("uploadType", 'article');
data.append("action", "uploadimage");
$.ajax({
type: "POST",
url: ctx + "common/upload/uploadImage",//ctx + "/tool/upload",
data: data,
cache: false,
contentType: false,
processData: false,
dataType: 'json',
success: function(result) {
if (result.code == web_status.SUCCESS) {
$(obj).summernote('editor.insertImage', result.url, result.fileName);
} else {
$.modal.alertError(result.msg);
}
},
error: function(error) {
$.modal.alertWarning("图片上传失败。");
}
});
}

GXS

2022-06-05 11:54

controller.class
public List getFiles() {
if (!(this.request instanceof MultipartRequest)) {
this.request = new MultipartRequest(this.request);
}

return ((MultipartRequest)this.request).getFiles();
}

杜福忠

2022-06-05 16:59

@GXS JFinal 4.9.18+ 以上版本吗?

GXS

2022-06-05 18:48

@杜福忠 (jfinal 4.9.16 + cos 2022.2) 或 (jfinal 4.9.19 + cos 2020.4) 都报同样的错误。
jfinal 4.9.16 + cos 2020.4 不报错

杜福忠

2022-06-05 21:00

@GXS 对着了,(JFinal 4.9.17-之下的版本是cos 2020.4)
(JFinal 4.9.18+上的版本是cos 2022.2)
getFile说明:
https://jfinal.com/doc/3-11
升级注意事项:
https://jfinal.com/doc/14-1

GXS

2022-06-05 22:19

@杜福忠 在下唐突了.....