kindeditor 4 指定生成文件的时间日期/动态获取My97的时间

最近后台要求要指定上传附件的时间日期,编辑器是kindeditor,仔细研究后发现可以借助clickToolbar事件,传递时间到后台,但是中途发现传递的时间总是初始化my97的时间,改变后的时间只有在提交时才能生效

于是又研究了下My97,终于解决

 1     <tr class="info">
 2         <td class="text-right">自定义发布时间</td>
 3         <td>
 4             <fmt:formatDate value="<%=new Date()%>" pattern="yyyy-MM-dd HH:mm:ss" var="fmttime"></fmt:formatDate>
 5             <div class="">
 6                 <label for="time" class="col-md-2 control-label">
 7                 <input type="text" class="form-control" name="releaseTime" value="${fmttime}"  id="time" onClick="WdatePicker({dateFmt:‘yyyy-MM-dd HH:mm:ss‘,onpicked:function(dp){ setTime(dp) }})" disabled>
 8                 </label>
 9             </div>
10         </td>
11     </tr>

js

 1 //需要动态设置my97的值到输入框中否则无法获取最新改变的时间
 2 function setTime(dp) {
 3     $("#time").attr("value",dp.cal.getNewDateStr(‘yyyy-MM-dd HH:mm:ss‘));
 4 }
 5
 6 KindEditor.ready(function(k) {
 7     window.editor = k.create("textarea[name=‘content‘]",options);
 8     window.editor.clickToolbar("insertfile",function() {
 9         var releaseTime =$("#time").attr("value");
10           $.ajax({
11             url:"${pageContext.request.contextPath}/kindeditor/jsp/upload_json.jsp?releaseTime=" + releaseTime,
12             dataType:"text",
13                type:"GET",
14                success:function() {
15
16                }
17
18         });
19
20      })
21 });

upload_json

  1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 <%@ page import="java.util.*,java.io.*" %>
  3 <%@ page import="java.text.SimpleDateFormat" %>
  4 <%@ page import="org.apache.commons.fileupload.*" %>
  5 <%@ page import="org.apache.commons.fileupload.disk.*" %>
  6 <%@ page import="org.apache.commons.fileupload.servlet.*" %>
  7 <%@ page import="org.json.simple.*" %>
  8 <%
  9 String releaseTime = request.getParameter("releaseTime");
 10 if(releaseTime != null) {
 11     request.getSession().setAttribute("releaseTime",releaseTime);
 12 }
 13 //用于创建文件目录和文件名
 14 String fileTime =(String)request.getSession().getAttribute("releaseTime");
 15
 16 //文件保存目录路径
 17 String savePath = pageContext.getServletContext().getRealPath("/") + "attached/";
 18
 19 //文件保存目录URL
 20 String saveUrl  = request.getContextPath() + "/attached/";
 21
 22 //定义允许上传的文件扩展名
 23 HashMap<String, String> extMap = new HashMap<String, String>();
 24 extMap.put("image", "gif,jpg,jpeg,png,bmp");
 25 extMap.put("flash", "swf,flv");
 26 extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
 27 extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,zip,rar,gz,bz2,swf");
 28
 29 //最大文件大小 1GB
 30 long maxSize = 1073741824;
 31
 32 response.setContentType("text/html; charset=UTF-8");
 33
 34 if(!ServletFileUpload.isMultipartContent(request)){
 35     out.println(getError("请选择文件。"));
 36     return;
 37 }
 38 //检查目录
 39 File uploadDir = new File(savePath);
 40 if(!uploadDir.isDirectory()){
 41     out.println(getError("上传目录不存在。"));
 42     return;
 43 }
 44 //检查目录写权限
 45 if(!uploadDir.canWrite()){
 46     out.println(getError("上传目录没有写权限。"));
 47     return;
 48 }
 49
 50 String dirName = request.getParameter("dir");
 51 if (dirName == null) {
 52     dirName = "image";
 53 }
 54 if(!extMap.containsKey(dirName)){
 55     out.println(getError("目录名不正确。"));
 56     return;
 57 }
 58 //创建文件夹
 59 savePath += dirName + "/";
 60 saveUrl += dirName + "/";
 61 File saveDirFile = new File(savePath);
 62 if (!saveDirFile.exists()) {
 63     saveDirFile.mkdirs();
 64 }
 65 //SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
 66 //时间日期设置
 67 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意这种格式的时间含有空格无法生成文件名
 68 Calendar calendar = Calendar.getInstance();
 69 calendar.setTime(df.parse(fileTime));
 70
 71 String month = String.valueOf(calendar.get(Calendar.MONTH)+1);
 72 if(month.length()<2) {
 73     month = "0" + month;
 74 }
 75 String day = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
 76 if(day.length() < 2) {
 77     day = "0"+day;
 78 }
 79 String ymd = String.valueOf(calendar.get(Calendar.YEAR))+month + day;
 80
 81
 82 savePath += ymd + "/";
 83 saveUrl += ymd + "/";
 84 File dirFile = new File(savePath);
 85 if (!dirFile.exists()) {
 86     dirFile.mkdirs();
 87 }
 88
 89 FileItemFactory factory = new DiskFileItemFactory();
 90 ServletFileUpload upload = new ServletFileUpload(factory);
 91 upload.setHeaderEncoding("UTF-8");
 92 List items = upload.parseRequest(request);
 93 Iterator itr = items.iterator();
 94 while (itr.hasNext()) {
 95     FileItem item = (FileItem) itr.next();
 96     String fileName = item.getName();
 97     String oldFileName = fileName;
 98     long fileSize = item.getSize();
 99     if (!item.isFormField()) {
100         //检查文件大小
101         if(item.getSize() > maxSize){
102             out.println(getError("上传文件大小超过限制。"));
103             return;
104         }
105         //检查扩展名
106         String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
107         if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){
108             out.println(getError("上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"));
109             return;
110         }
111
112
113         Date date = df.parse(fileTime);
114
115
116         calendar.setTime(date);
117
118
119         String newFileName = String.valueOf(calendar.get(Calendar.YEAR))
120                                 + month
121                                 + day
122                                 + String.valueOf(calendar.get(Calendar.HOUR_OF_DAY))
123                                 + String.valueOf(calendar.get(Calendar.MINUTE))
124                                 + String.valueOf(calendar.get(Calendar.SECOND))
125                                 + "_" + new Random().nextInt(1000) + "." + fileExt;
126         try{
127             File uploadedFile = new File(savePath, newFileName);
128             item.write(uploadedFile);
129         }catch(Exception e){
130             out.println(getError("上传文件失败。"));
131             return;
132         }
133
134
135         JSONObject obj = new JSONObject();
136         obj.put("error", 0);
137         obj.put("url",saveUrl + newFileName);//
138         if(extMap.get("file").contains(newFileName.substring(newFileName.lastIndexOf(".")+1))){
139             request.getSession().setAttribute("attachment",true);
140         }
141     //    obj.put("url",oldFileName);//回显原文件名,回显图片的原文件名时会导致显示有问题
142         out.println(obj.toJSONString());
143     }
144 }
145 %>
146 <%!
147 private String getError(String message) {
148     JSONObject obj = new JSONObject();
149     obj.put("error", 1);
150     obj.put("message", message);
151     return obj.toJSONString();
152 }
153 %>

原文地址:https://www.cnblogs.com/tele-share/p/9965727.html

时间: 2024-08-05 21:35:34

kindeditor 4 指定生成文件的时间日期/动态获取My97的时间的相关文章

【JavaScript】一个同步于本地时间的动态时钟并且自定义时间格式

本文是对<[JavaScript]一个同步于本地时间的动态时间>一文(点击打开链接)的改进 JavaScript里面的Date类型除了可以直接toLocaleString(),转化成一个以系统格式的时间之外 还可以时间自定义格式,比如可以构造于一个仿QQ聊天框的同步于本地时间的动态时钟 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o

时间日期的获取

public class DateZaXiang { public static void main(String[] args){ //先回顾一下怎么获取时间 Calendar ca=Calendar.getInstance();//获取日历 System.out.println(ca.get(Calendar.YEAR));//获取当前年份 System.out.println(ca.get(Calendar.MONTH)+1);//获取当前月份 System.out.println(ca.

时间分割与获取一下阶段时间

1.获取某段时间内的时间间隔,小时为单位,分钟为单位 /** * 获取时间间隔,小时为单位 * * @param startTime * @param endTime * @return */ private long getHourTimeSpace(String startTime, String endTime) { SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); Date beginDate =

字符串的用法,时间日期的调用修改,生成随机码的验证

一:字符串 //定义字符串:每题的效果如下图 String li=" 56 Ac DcmKc "; //获取字符长度 System.out.println(li.length()); //获得起始字符的索引 System.out.println(li.indexOf("c")); //获得最后字符出现的位置 System.out.println(li.lastIndexOf("c")); //去除字符串的前导尾部空格 System.out.pri

java 时间日期

Java 日期时间 java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实例化 Date 对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数. Date(long millisec) Date对象创建以后,可以调用下面的方法. 序号 方法和描述 1 boolean after(Date date)若当调用此方法的Date对象在指定日期之后返回true,否则返回fa

js实现的时间戳和时间日期的转换

js实现的时间戳和时间日期的转换:时间戳和时间日期的转换是常见的操作,下面就通过代码实例介绍一下如何实现它们之间的相互转换.建议事先参阅javascript中Date()构造函数参数介绍一章节.一.时间日期转换为时间戳:现在有这么一个时间日期:"2013/5/12 20:10:20",下面将其转换为时间戳形式:代码如下: var dateStr="2013/5/12 20:10:20"; var date=new Date(dateStr); console.log

Java8 时间日期类操作

Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全的问题.同时Java8的时间类提供了诸多内置方法,方便了对时间进行相应的操作. 上图为Java8时间类的覆盖范围 相关的类有 LocalDate LocalTime LocalDateTime ZoneId ZonedDateTime Instant Instant类 Instant类用来表示格林威

1、自学——Linux的学习进度与任务【时间日期管理类的命令】

时间日期管理类的命令 时间日期管理类的命令:  # date :显示 # date MMDDhhmm[CC]YY.ss :设定 # date [+FORMAT] %Y:4位年份 %y:  2位年份 %M:  分 %m:月 %d:  日 %H:  时 %S:  秒 %T: 时间(以冒号隔开) %D:日期 %F: 日期(以横杆隔开) unix元年:1970-01-01 00:00:00 %s:timestamp:从unix元年开始到此刻所经历的秒数 # cal   :    显示日历 # cal #

Word 文档插入时间日期禁止自动更新

前些天写了点总结并插入时间和日期,记得勾掉了那个自动更新的,但是刚才打开时发现当时的日期和时间变成现在的了,我就纳闷了,然后我去看那插入日期和时间的那个框,里面确实没有勾选自动更新,于是百度, 百度都说只要把那个自动更新的勾去掉了就不会自动更新了,但是我的怎么就自动更新了呢? 是这样的,在你完成插入操作之前要把那个自动更新的勾去掉,再去插入时间和日期,这样插入的时间和日期就不会自动更新了,我当时是用的快捷键插入的时间和日期, 然后再去去掉那个自动更新的勾,这样其实没用了,记住在不需要自动更新时间