首页>代码>java SSH框架开发毕业设计-湖南科技大学资源分享系统,数据库mysql5.5,DIV+CSS布局>/Research/src/com/hnust/research/action/CkeditorImg.java
package com.hnust.research.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.hnust.research.domain.User; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; @Controller @Scope("prototype") public class CkeditorImg extends ActionSupport{ private File upload;//文件 private String uploadFileName;//文件名 private String uploadContentType;//文件类型 private String callback; /** * 验证文件的合法性 * 处理ckeditor上传的图片,根据不同的用户,生成不同的文件夹, * 路径格式:upload/username(用户名登录名)/201407(年月)/112131541132123.jpg * 参考了网上csdn里的面一个同志的博客写出来的,这个execute里面并不要配置返回页面 * 这个上传文件的方法是给前台用户设计的,每个用户会根据自己的用户名和上传时间建立一个文件夹 */ public String execute() throws Exception{ HttpServletResponse response=ServletActionContext.getResponse(); response.setCharacterEncoding("UTF-8"); PrintWriter out=response.getWriter(); // CKEditor提交的很重要的一个参数 callback=ServletActionContext.getRequest().getParameter("CKEditorFuncNum"); User user=(User) ActionContext.getContext().getSession().get("user"); if(user!=null){ String expandName=uploadFileName.substring(uploadFileName.lastIndexOf(".")).toLowerCase(); if(expandName.equals(".png")||expandName.equals(".gif")||expandName.equals(".bmp")||expandName.equals(".jpg")){//检查扩展名是否合法,bmp,jpg,png,gif if(upload.length()>600*1024){//文件超过600K out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'图片大小不能超过600k');"); out.println("</script>"); return null; } //进行文件上传操作 InputStream is=new FileInputStream(upload); Date date=new Date(); SimpleDateFormat formatter=new SimpleDateFormat("yyyyMM"); String yyyymm=formatter.format(date); String fileName=java.util.UUID.randomUUID().toString()+expandName; String uploadPath=ServletActionContext.getServletContext().getRealPath("\\upload")+"\\images\\"+user.getUsername()+"\\"+yyyymm+"\\"; String src="/Research/upload/"+"images/"+user.getUsername()+"/"+yyyymm+"/"; File file=new File(uploadPath); if(!file.exists()){//不存在就创建这个目录 file.mkdirs(); } File toFile=new File(uploadPath,fileName); OutputStream os=new FileOutputStream(toFile); byte[] buffer=new byte[1024]; int length=0; while((length=is.read(buffer))>0){ os.write(buffer,0,length); } is.close(); os.close(); //上传成功之后,返回"图像"选项卡并显示图片 System.out.println(uploadPath+fileName); out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",'" + src+fileName+ "','')"); out.println("</script>"); return null; }else{//输入文件名不合法信息,这里是调用ckeditor自带的callFunction方法返回信息 out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)');"); out.println("</script>"); return null; } }else{ System.out.println("未登录用户"); out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'请先登录再上传图片');"); out.println("</script>"); return null; } } public String adminImg() throws Exception{ HttpServletResponse response=ServletActionContext.getResponse(); response.setCharacterEncoding("UTF-8"); PrintWriter out=response.getWriter(); String expandName=uploadFileName.substring(uploadFileName.lastIndexOf(".")).toLowerCase(); // CKEditor提交的很重要的一个参数 callback=ServletActionContext.getRequest().getParameter("CKEditorFuncNum"); if(expandName.equals(".png")||expandName.equals(".gif")||expandName.equals(".bmp")||expandName.equals(".jpg")){//检查扩展名是否合法,bmp,jpg,png,gif if(upload.length()>600*1024){//文件超过600K out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'图片大小不能超过600k');"); out.println("</script>"); return null; } //进行文件上传操作 InputStream is=new FileInputStream(upload); Date date=new Date(); SimpleDateFormat formatter=new SimpleDateFormat("yyyyMM"); String yyyymm=formatter.format(date); String fileName=java.util.UUID.randomUUID().toString()+expandName; String uploadPath=ServletActionContext.getServletContext().getRealPath("\\upload")+"\\admin\\images\\"; String src="/Research/upload/admin/images/"; File file=new File(uploadPath); if(!file.exists()){//不存在就创建这个目录 file.mkdirs(); } File toFile=new File(uploadPath,fileName); OutputStream os=new FileOutputStream(toFile); byte[] buffer=new byte[1024]; int length=0; while((length=is.read(buffer))>0){ os.write(buffer,0,length); } is.close(); os.close(); //上传成功之后,返回"图像"选项卡并显示图片 System.out.println(uploadPath+fileName); out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",'" + src+fileName+ "','')"); out.println("</script>"); return null; }else{//输入文件名不合法信息,这里是调用ckeditor自带的callFunction方法返回信息 out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",''," + "'文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)');"); out.println("</script>"); return null; } } public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } }
最近下载更多
1481421104 LV3
11月14日
y_x_happy LV4
6月25日
educationAAA LV11
5月25日
ziv5466123 LV7
2023年12月15日
xuweiwowzy LV5
2023年7月30日
wanglei92 LV2
2023年6月26日
hosinvm LV7
2022年11月18日
123456781 LV4
2022年7月13日
二十一画 LV10
2022年6月25日
微信网友_5963854197018624 LV7
2022年5月21日
最近浏览更多
1481421104 LV3
11月14日
是数据库 LV3
10月28日
微信网友_7211237575856128
10月23日
暂无贡献等级
WBelong LV8
9月19日
y_x_happy LV4
6月25日
educationAAA LV11
5月25日
kQWERTY
5月4日
暂无贡献等级
12345644
4月25日
暂无贡献等级
zolscy LV12
4月25日
15103432984 LV2
3月17日