{'title':'@ResponseBody, @Transactional, @RequestMapping('addEntity') - 添加新闻资讯接口', 'description':'该接口使用@ResponseBody, @Transactional, @RequestMapping('addEntity')注解,实现了添加新闻资讯的功能,支持图片和视频上传,并记录操作日志。', 'keywords':'@ResponseBody, @Transactional, @RequestMapping, 添加新闻资讯, 接口, 文件上传, 图片, 视频, 操作日志', 'content':'@ResponseBody\n@Transactional\n@RequestMapping('addEntity')\n@SystemLog(module = '新闻管理', methods = '新闻管理-新增新闻')//凡需要处理业务逻辑的.都需要记录操作日志\n//\t@Transactional(readOnly=false)//需要事务操作必须加入此注解\npublic void addEntity(HttpServletRequest request, HttpServletResponse res) {\nResponseVo rv = new ResponseVo();\n try {\n NewsInformation newsInformation = getLoadFormMap(request, NewsInformation.class);\n if (newsInformation.getNewsName() != null) {\n newsInformation.setNewsName(newsInformation.getNewsName().trim());\n }\n if (newsInformation.getNewsFrom() != null) {\n newsInformation.setNewsFrom(newsInformation.getNewsFrom().trim());\n }\n\n UcAccountDto user = findUserSession(request);\n CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(\n request.getSession().getServletContext());\n String imgPath = '';\n Map<String, Object> result;\n if (multipartResolver.isMultipart(request)) {\n MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;\n Iterator iter = multiRequest.getFileNames();\n while (iter.hasNext()) {\n MultipartFile file = multiRequest.getFile(iter.next());\n String fileExt = file.getOriginalFilename()\n .substring(file.getOriginalFilename().lastIndexOf('.') + 1).toLowerCase();\n if ('mp4'.equals(fileExt)) {\n result = UploadUtil.uploadVideoFiles(file, request, 'news_video_file');\n newsInformation.setNewsCover(null == result.get('newsCoverPath') ? null\n : result.get('newsCoverPath').toString());\n newsInformation.setDescription(null == result.get('newsVideoPath') ? null\n : result.get('newsVideoPath').toString());\n } else {\n imgPath = UploadUtil.uploadImage(file, 'news_cover_img');\n newsInformation.setNewsCover(imgPath);\n }\n }\n }\n rv = newsInformationService.addNews(newsInformation, user);\n//\t\treturn rv;\n/\t\t}catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t\t logger.error('新增新闻资讯失败', e);\n\t\t\treturn ResponseUtil.getResponseVo(e);\n\t\t\t}/\n } catch (Exception e) {\n e.printStackTrace();\n TRestUtil.setError(rv, ErrorCode.UNDEFINED_ERROR, ErrorCode.UNDEFINED_ERROR_MSG);\n } finally {\n String resStr = JSON.toJSONString(rv.getData());\n try {\n res.getWriter().write(resStr);\n res.getWriter().close();\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n\n}这段代码怎么额外接受一个文件上传内容:这段代码已经包含了文件上传的逻辑。它使用了CommonsMultipartResolver来解析请求中的文件数据。如果请求中包含文件数据,它会将文件保存到服务器,并将文件路径存储到newsInformation对象中。在这段代码中,它支持上传图片文件和视频文件。\n\n要额外接受一个文件上传,你可以在前端的表单中增加一个文件上传的输入框,并在后端的代码中添加相应的处理逻辑。具体步骤如下:\n\n1. 在前端的表单中增加一个文件上传的输入框,例如:\n\n<input type=\'file\' name=\'extraFile\'>\n\n\n2. 在后端的代码中,修改addEntity方法,以接受额外的文件上传:\njava\npublic void addEntity(HttpServletRequest request, HttpServletResponse res, @RequestParam(\'extraFile\') MultipartFile extraFile) {\n // 处理extraFile的逻辑\n \n // 将extraFile保存到服务器并处理文件路径的逻辑\n}\n\n\n注意,修改后的方法需要增加@RequestParam注解来接受文件上传。在方法体中,你可以根据需要处理extraFile的逻辑,例如将文件保存到服务器并处理文件路径。\n\n这样,你就可以同时接受多个文件上传了。


原文地址: https://www.cveoy.top/t/topic/pGwt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录