kindeditor 4 指定生成文件的时间日期/动态获取My97的时间
最近后台要求要指定上传附件的时间日期,编辑器是kindeditor,仔细研究后发现可以借助clickToolbar事件,传递时间到后台,但是中途发现传递的时间总是初始化my97的时间,改变后的时间只有在提交时才能生效于是又研究了下My97,终于解决
- <tr class="info">
- <td class="text-right">自定义发布时间</td>
- <td>
- <fmt:formatDate value="<%=new Date()%>" pattern="yyyy-MM-dd HH:mm:ss" var="fmttime"></fmt:formatDate>
- <div class="">
- <label for="time" class="col-md-2 control-label">
- <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>
- </label>
- </div>
- </td>
- </tr>
js
- //需要动态设置my97的值到输入框中否则无法获取最新改变的时间
- function setTime(dp) {
- $("#time").attr("value",dp.cal.getNewDateStr('yyyy-MM-dd HH:mm:ss'));
- }
- KindEditor.ready(function(k) {
- window.editor = k.create("textarea[name='content']",options);
- window.editor.clickToolbar("insertfile",function() {
- var releaseTime =$("#time").attr("value");
- $.ajax({
- url:"${pageContext.request.contextPath}/kindeditor/jsp/upload_json.jsp?releaseTime=" + releaseTime,
- dataType:"text",
- type:"GET",
- success:function() {
- }
- });
- })
- });
upload_json
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%@ page import="java.util.*,java.io.*" %>
- <%@ page import="java.text.SimpleDateFormat" %>
- <%@ page import="org.apache.commons.fileupload.*" %>
- <%@ page import="org.apache.commons.fileupload.disk.*" %>
- <%@ page import="org.apache.commons.fileupload.servlet.*" %>
- <%@ page import="org.json.simple.*" %>
- <%
- String releaseTime = request.getParameter("releaseTime");
- if(releaseTime != null) {
- request.getSession().setAttribute("releaseTime",releaseTime);
- }
- //用于创建文件目录和文件名
- String fileTime =(String)request.getSession().getAttribute("releaseTime");
- //文件保存目录路径
- String savePath = pageContext.getServletContext().getRealPath("/") + "attached/";
- //文件保存目录URL
- String saveUrl = request.getContextPath() + "/attached/";
- //定义允许上传的文件扩展名
- HashMap<String, String> extMap = new HashMap<String, String>();
- extMap.put("image", "gif,jpg,jpeg,png,bmp");
- extMap.put("flash", "swf,flv");
- extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
- extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,zip,rar,gz,bz2,swf");
- //最大文件大小 1GB
- long maxSize = 1073741824;
- response.setContentType("text/html; charset=UTF-8");
- if(!ServletFileUpload.isMultipartContent(request)){
- out.println(getError("请选择文件。"));
- return;
- }
- //检查目录
- File uploadDir = new File(savePath);
- if(!uploadDir.isDirectory()){
- out.println(getError("上传目录不存在。"));
- return;
- }
- //检查目录写权限
- if(!uploadDir.canWrite()){
- out.println(getError("上传目录没有写权限。"));
- return;
- }
- String dirName = request.getParameter("dir");
- if (dirName == null) {
- dirName = "image";
- }
- if(!extMap.containsKey(dirName)){
- out.println(getError("目录名不正确。"));
- return;
- }
- //创建文件夹
- savePath += dirName + "/";
- saveUrl += dirName + "/";
- File saveDirFile = new File(savePath);
- if (!saveDirFile.exists()) {
- saveDirFile.mkdirs();
- }
- //SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- //时间日期设置
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意这种格式的时间含有空格无法生成文件名
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(df.parse(fileTime));
- String month = String.valueOf(calendar.get(Calendar.MONTH)+1);
- if(month.length()<2) {
- month = "0" + month;
- }
- String day = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
- if(day.length() < 2) {
- day = "0"+day;
- }
- String ymd = String.valueOf(calendar.get(Calendar.YEAR))+month + day;
- savePath += ymd + "/";
- saveUrl += ymd + "/";
- File dirFile = new File(savePath);
- if (!dirFile.exists()) {
- dirFile.mkdirs();
- }
- FileItemFactory factory = new DiskFileItemFactory();
- ServletFileUpload upload = new ServletFileUpload(factory);
- upload.setHeaderEncoding("UTF-8");
- List items = upload.parseRequest(request);
- Iterator itr = items.iterator();
- while (itr.hasNext()) {
- FileItem item = (FileItem) itr.next();
- String fileName = item.getName();
- String oldFileName = fileName;
- long fileSize = item.getSize();
- if (!item.isFormField()) {
- //检查文件大小
- if(item.getSize() > maxSize){
- out.println(getError("上传文件大小超过限制。"));
- return;
- }
- //检查扩展名
- String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
- if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){
- out.println(getError("上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"));
- return;
- }
- Date date = df.parse(fileTime);
- calendar.setTime(date);
- String newFileName = String.valueOf(calendar.get(Calendar.YEAR))
- + month
- + day
- + String.valueOf(calendar.get(Calendar.HOUR_OF_DAY))
- + String.valueOf(calendar.get(Calendar.MINUTE))
- + String.valueOf(calendar.get(Calendar.SECOND))
- + "_" + new Random().nextInt(1000) + "." + fileExt;
- try{
- File uploadedFile = new File(savePath, newFileName);
- item.write(uploadedFile);
- }catch(Exception e){
- out.println(getError("上传文件失败。"));
- return;
- }
- JSONObject obj = new JSONObject();
- obj.put("error", 0);
- obj.put("url",saveUrl + newFileName);//
- if(extMap.get("file").contains(newFileName.substring(newFileName.lastIndexOf(".")+1))){
- request.getSession().setAttribute("attachment",true);
- }
- // obj.put("url",oldFileName);//回显原文件名,回显图片的原文件名时会导致显示有问题
- out.println(obj.toJSONString());
- }
- }
- %>
- <%!
- private String getError(String message) {
- JSONObject obj = new JSONObject();
- obj.put("error", 1);
- obj.put("message", message);
- return obj.toJSONString();
- }
- %>
kindeditor 4 指定生成文件的时间日期/动态获取My97的时间的更多相关文章
- js动态获取当前系统时间+js字符串转换为date日期对象
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- java 时间日期
Java 日期时间 java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实例化 Date 对象. 第一个构造函数使用当前日期和时间来初始化对象. Date ...
- mybatis 自动生成文件配置
maven 依赖配置: <!-- sql server --><dependency> <groupId>com.microsoft.sqlserver</g ...
- Java8 时间日期类操作
Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全 ...
- Word 文档插入时间日期禁止自动更新
前些天写了点总结并插入时间和日期,记得勾掉了那个自动更新的,但是刚才打开时发现当时的日期和时间变成现在的了,我就纳闷了,然后我去看那插入日期和时间的那个框,里面确实没有勾选自动更新,于是百度, 百度都 ...
- MYSQL常用的时间日期函数
#时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:X ...
- 12-Perl 时间日期
1.Perl 时间日期本章节介绍 Perl 语言对时间日期的处理.Perl中处理时间的函数有如下几种: time() 函数:返回从1970年1月1日起累计的秒数 localtime() 函数:获取本地 ...
- Java基础 - Date的相关使用(获取系统当前时间)
前言: 在日常Java开发中,常常会使用到Date的相关操作,如:获取当前系统时间.获取当前时间戳.时间戳按指定格式转换成时间等.以前用到的时候,大部分是去网上找,但事后又很快忘记.现为方便自己今后查 ...
- Java获取NTP网络时间
最近项目中涉及到一个时间验证的问题,需要根据当前时间来验证业务数据是否过期.所以直接写代码如下: new java.util.Date().getTime(); 结果测试的时候出现了 ...
随机推荐
- 【Codeforces Round #432 (Div. 2) B】Arpa and an exam about geometry
[链接]h在这里写链接 [题意] 给你3个点A,B,C 问你能不能将纸绕着坐标轴上的一点旋转.使得A与B重合,B与C重合 [题解] 这3个点必须共圆. 则A,B,C不能为一条直线.否则无解. 共圆之后 ...
- 【Codeforces Round #432 (Div. 1) A】 Five Dimensional Points
[链接]点击打开链接 [题意] 给你n个5维的点. 然后让你以其中的某一个点作为起点a. 另选两个点b,c. 组成向量a->b,a->c 如果所有的a->b和a->c的夹角都是 ...
- iOS 中使用 XIB 自定义cell的两种方法以及编译出现常见 的错误 (xcode6.0之后)
一. 注册cell 1.创建自定义cell并勾选 xib :(勾选xib就会自动生成与cell文件关联的xib) 2.在 tableViewController里注册自定义Cell (或者遵守tabl ...
- Library Component Properties的表格如何填写
- Day2:数据类型
一.数字 1.整型(int),无长整型.python3.x,不论多大的数都是int #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuh ...
- 每天自动备份MySQL数据库的shell脚本
经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行.我们需要一种安全的,每天自动备份的方法 ...
- Java基础学习总结(28)——Java对各种排序算法的实现
这里总结下各种排序算法的java实现 冒泡排序 public class BubbleSort { publicstaticint[] bubbleSort(int[] array) { if(arr ...
- Qt5 UI信号、槽自动连接的控件重名大坑(UI生成的槽函数存在一个隐患,即控件重名。对很复杂的控件,不要在 designer 里做提升,而是等到程序启动后,再动态创建,可以避免很多问题)
对Qt5稍有熟悉的童鞋都知道信号.槽的自动连接机制.该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联.该机制的详细文章见 http: ...
- POJ 1511 Invitation Cards (ZOJ 2008) 使用优先队列的dijkstra
传送门: http://poj.org/problem?id=1511 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1008 ...
- 1.2.4 Java Annotation 提要
(本文是介绍依赖注入容器Spring和分析JUnit源码的准备知识) Java Annotation(标注) java.lang.annotation.Annotation是全部Java标注的父接口. ...