springMVC和ckeditor图片上传

8 篇文章 0 订阅

1.下载ckeditor后将文件夹放在webroot的js目录下;

2.springmvc配置静态文件访问
在web.xml中添加:

<servlet-mapping> 
<servlet-name>default</servlet-name> 
<url-pattern>*.css</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
<servlet-name>default</servlet-name> 
<url-pattern>*.gif</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
<servlet-name>default</servlet-name> 
<url-pattern>*.jpg</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
<servlet-name>default</servlet-name> 
<url-pattern>*.png</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
<servlet-name>default</servlet-name> 
<url-pattern>*.js</url-pattern> 
</servlet-mapping>
3.在springmvc-servlet.xml配置文件中添加文件上传支持

<bean id="multipartResolver" 
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
<property name="defaultEncoding" value="utf-8" /> 
<property name="maxUploadSize" value="10485760000" /> 
<property name="maxInMemorySize" value="40960" /> 
</bean>

4.在进行上传的页面中

<textarea rows="4" cols="5" name="content"></textarea>
<script type="text/javascript">CKEDITOR.replace('content',
{ 
filebrowserImageUploadUrl : 'uploadImg',
language : 'zh-cn',
} );</script>

其中filebrowserImageUploadUrl是controller的路径

5.编写controller

@Controller
public class FileUploadController {
/*
* 图片命名格式
*/
private static final String DEFAULT_SUB_FOLDER_FORMAT_AUTO = "yyyyMMddHHmmss";

protected Logger logger = Logger.getLogger(FileUploadController.class);

/*
* 上传图片文件夹
*/
private static final String UPLOAD_PATH = "upload/img/";

/*
* 上传图片
*/
@RequestMapping(value = "news/uploadImg")
public void uplodaImg(@RequestParam("upload") MultipartFile file,//
HttpServletRequest request, //
HttpServletResponse response)//
{

try {
String proPath = request.getSession().getServletContext().getRealPath("/");
String proName = request.getContextPath();
String path=proName + UPLOAD_PATH;
PrintWriter out = response.getWriter();
String CKEditorFuncNum = request.getParameter("CKEditorFuncNum");
String fileName = file.getOriginalFilename();
String uploadContentType = file.getContentType();
String expandedName = "";
if (uploadContentType.equals("image/pjpeg")
|| uploadContentType.equals("image/jpeg")) {
// IE6上传jpg图片的headimageContentType是image/pjpeg,而IE9以及火狐上传的jpg图片是image/jpeg
expandedName = ".jpg";
} else if (uploadContentType.equals("image/png")
|| uploadContentType.equals("image/x-png")) {
// IE6上传的png图片的headimageContentType是"image/x-png"
expandedName = ".png";
} else if (uploadContentType.equals("image/gif")) {
expandedName = ".gif";
} else if (uploadContentType.equals("image/bmp")) {
expandedName = ".bmp";
} else {
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction("
+ CKEditorFuncNum + ",'',"
+ "'文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)');");
out.println("</script>");
return;
}
if (file.getSize() > 1024 * 1024 * 2) {
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction("
+ CKEditorFuncNum + ",''," + "'文件大小不得大于2M');");
out.println("</script>");
return;
}
DateFormat df = new SimpleDateFormat(DEFAULT_SUB_FOLDER_FORMAT_AUTO);
fileName = df.format(new Date()) + expandedName;
file.transferTo(new File(path + "/" + fileName));
// 返回"图像"选项卡并显示图片 request.getContextPath()为web项目名
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction("
+ CKEditorFuncNum + ",'" + "../../upload/img/" + fileName
+ "','')");
out.println("</script>");
return;
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC中实现图片上传的步骤如下: 1. 在后台Controller中添加一个处理图片上传的方法,使用`@RequestMapping`注解指定请求路径。方法参数中可以使用`MultipartFile`类型的参数来接收上传的文件。在方法中可以对文件进行处理,比如获取文件的原始名称、存储文件等操作。最后,可以返回一个信息来表示上传成功或失败。\[1\] 2. 在前端页面中添加一个上传图片的按钮和文件域。可以使用HTML的`<form>`标签来创建一个表单,设置`enctype="multipart/form-data"`属性来支持文件上传。使用`<input type="file" name="upload"/>`来创建文件域,用户可以选择要上传的文件。最后,使用`<input type="submit" value="上传"/>`来创建一个提交按钮,用户点击该按钮后触发文件上传操作。\[2\] 3. 在Spring MVC的配置文件中添加文件上传的配置。可以使用`CommonsMultipartResolver`类来处理文件上传,设置`maxUploadSize`属性来限制上传文件的大小。同时,可以使用`<mvc:resources>`标签来配置图片文件夹的路径,以便地址栏可以正常访问。\[3\] 以上是实现Spring MVC图片上传的基本步骤。具体的实现细节可以根据项目需求进行调整。 #### 引用[.reference_title] - *1* *3* [Java springMVC上传图片](https://blog.csdn.net/weixin_44084713/article/details/113942251)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [适用SpringMVC实现图片上传功能](https://blog.csdn.net/l_zl2021/article/details/127242717)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值