首页>代码>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; } }
最近下载更多
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日
buchifanqie LV2
2022年3月22日
八云橙 LV1
2022年3月8日
行家文化 LV1
2022年2月8日
最近浏览更多
15103432984 LV2
3月17日
1203093322
2023年12月31日
暂无贡献等级
ziv5466123 LV7
2023年12月15日
2010160433 LV3
2023年11月30日
空中飞尘 LV13
2023年11月25日
1waxzsq212345 LV2
2023年11月22日
Henew168 LV2
2023年11月19日
去码头整点薯条 LV3
2023年11月15日
流连瓦盖法 LV7
2023年11月15日
毫无语 LV6
2023年10月19日