问题描述:
{"timestamp":"2020-05-11T00:32:58.215+0000","status":400,"error":"Bad Request","message":"Required request part 'file' is not present","trace":"org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:199) org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:114) org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1639) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745)\r\n","path":"/ckeditorupload"}
处理方法:
ckeditor 实例中 @RequestParam("file") MultipartFile file 改为 @RequestParam("upload") MultipartFile file
不报错了
@ResponseBody @RequestMapping(value = "/ckeditorupload", method = {RequestMethod.POST}) public ImageUploadVo ckupload(@RequestParam("upload") MultipartFile file){
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。
个人主页:http://knight-black-bob.iteye.com/
谢谢您的赞助,我会做的更好!
相关推荐
mathtype 基于springboot ckeditor整合mathType完整实例
内容包括SpringBoot文件上传,SpringData JPA数据持久化,CKEditor图片上传,CKEditor插入视频,获取/设置CKEditor内容等。 环境准备 工欲善其事必先利其器,在开始系列介绍之前,先了解一下本系列文章所涉及到的...
而CKFinder是一款功能强大的文件管理器,它与CKEditor编辑器配合使用,方便用户上传、管理和选择图片、文档等资源。将CKFinder集成到Spring Boot项目中,可以提供一个便捷的后台文件管理方案。下面我们将详细探讨...
直接在ckeditor的按钮中显示文件浏览按钮,点击后打开文件浏览窗口,上传或管理文件(必须安装ckfinder先) config.js中添加名为File的按钮 config.js中添加 ... 创建目录 ...ckeditor/skins/v2/file.gif
在IT行业中,Spring Boot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及开发过程,提供了自动配置、起步依赖等特性。本项目聚焦于将富文本编辑器集成到Spring Boot应用中,以增强用户界面的内容...
CKEDITOR.instances.editor.on('fileUploadRequest', function(event) { var formData = event.data.form; formData.append('type', 'image'); // 或 'video',根据上传的类型 formData.append('userId', userId)...
1. **ckeditor.js**:这是CKEditor的核心文件,包含了编辑器的主要功能和逻辑。它负责初始化编辑器实例,处理用户的输入,以及与服务器进行数据交互。通过加载这个文件,你可以将任何HTML元素转换为一个具有完整功能...
Part filePart = request.getPart("uploadFile"); // 检查文件大小、类型等 String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString(); File uploadedFile = new File("uploads/...
filebrowserUploadUrl: '@Url.Content("~/Scripts/ckeditor/filemanager/connectors/aspnet/upload.aspx")' }); ``` 3. **配置CKEditor** - CKEditor有许多可配置的选项,例如语言、工具栏、样式集等。你可以...
Part filePart = request.getPart("upload"); String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString(); File uploadedFile = new File("/path/to/save/files", fileName); ...
"ckeditor 行间距插件"就是专门为CKEditor设计的一个增强功能,旨在让用户能够更加灵活地调整文本的行间距,以满足不同设计需求。 CKEditor 的行间距插件通常包含以下几个核心知识点: 1. **安装与集成**:首先,...
<%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %> <CKEditor:CKEditorControl ID="editor1" BasePath="./ckeditor/" runat="server"></CKEditor:CKEditorControl> ...
CKEditor 5是一款先进的富文本编辑器,专为现代Web应用程序设计。它的全屏按钮功能是编辑器的一个重要特性,允许用户将编辑区域扩展到浏览器的整个窗口,从而提供无干扰的写作体验。这个功能在编写长篇文章、报告...
《ckeditor4行高插件详解及应用》 在网页编辑器的发展中,CKEditor一直以其强大的功能和良好的用户体验而备受青睐。CKEditor4是其重要的一代产品,它提供了丰富的可扩展性,允许用户根据需求定制编辑器的功能。在...
把ckeditor 3.4的ckeditor.js复盖就行
可以使用`request.getParameter("upload")`来获取上传数据,然后通过`Part`对象处理文件。 - 保存文件到服务器。通常会有一个保存目录,例如`/var/www/uploaded_files/`,将文件写入该目录。 - 返回响应给CKEditor...
最近项目开发需要用到CKEditor在线编辑器,但发现他本身没有自带,所以需要自己手动配置插件。但网上很多配置都有问题,自己摸索了好久终于搞定。需要注意的细节有:flvPlayer文件夹的内容直接放在ckeditor文件夹...
**ckeditor自定义上传图片** 在使用ckeditor作为富文本编辑器时,经常需要集成图片上传功能。ckeditor是一款强大的在线文本编辑器,它提供了丰富的文本格式化工具,使得在网页上编辑内容变得简单。然而,ckeditor...
CKEditor是一款著名的富文本编辑器,它为网页提供高级文本编辑功能,广泛应用于网站内容管理、博客、论坛等在线交互平台。在这个“ckeditor的demo代码”中,我们主要关注的是如何在网页中集成并使用CKEditor,以及...