itoo在线编辑——mongo学习1

2024-08-27 15:18
文章标签 学习 编辑 在线 mongo itoo

本文主要是介绍itoo在线编辑——mongo学习1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前台

1. jsp页面

         html标签里面要有个type 为“file”的input。例子如下:

    <div style="padding-top: 8px;"><p class="ui-tips">上传头像会自动生成头像缩略图片,您也可以拖动大图的裁剪区域,调整缩图内容。</p><p class="ui-tips">支持JPG、GIF、PNG等图片格式推荐尺寸:180*180像素</p><input type="file" name="fileCoursePoster" οnchange="uploadCoursePoster();" id="fileCoursePoster"/><span id="errorCoursePoster" style="color: red; display: none;">请上传图片!</span><input type="hidden" id="imageType" name="imageType"></div><code><span style="color:#93a1a1;"><span></span></span><span style="color:#48484c;"><span></span></span><span style="color:#93a1a1;"><span></span></span></code>

 

引用的插件:ajaxfileupload.js

jQuery.extend({ {createUploadIframe: function(id, uri)
{
//create framevar frameId ='jUploadFrame'+ id;var iframeHtml ='<iframe id="'+ frameId +'" name="'+ frameId +'" style="position:absolute; top:-9999px; left:-9999px"';
if(window.ActiveXObject)
{
if(typeof uri=='boolean'){iframeHtml +=' src="'+'javascript:false'+'"';}
elseif(typeof uri=='string'){iframeHtml +=' src="'+ uri +'"';}
}iframeHtml +=' />';jQuery(iframeHtml).appendTo(document.body);return jQuery('#'+ frameId).get(0);
},createUploadForm: function(id,fileElementId,data,fileElement)
{
//create form	var formId ='jUploadForm'+ id;var fileId ='jUploadFile'+ id;var form = jQuery('<form  action="" method="POST" name="'+ formId +'" id="'+ formId +'" enctype="multipart/form-data"></form>');
if(data)
{
for(var i in data)
{jQuery('<input type="hidden" name="'+ i +'" value="'+ data[i]+'" />').appendTo(form);
}
}var oldElement;
if(fileElement ==null)oldElement = jQuery('#'+ fileElementId);
elseoldElement = fileElement;var newElement = jQuery(oldElement).clone();jQuery(oldElement).attr('id', fileId);jQuery(oldElement).before(newElement);jQuery(oldElement).appendTo(form);
//set attributesjQuery(form).css('position','absolute');jQuery(form).css('top','-1200px');jQuery(form).css('left','-1200px');jQuery(form).appendTo('body');
return form;
},ajaxFileUpload: function(s){
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout		s = jQuery.extend({}, jQuery.ajaxSettings, s);var id =newDate().getTime()var form = jQuery.createUploadForm(id, s.fileElementId,(typeof(s.data)=='undefined'?false:s.data),s.fileElement);var io = jQuery.createUploadIframe(id, s.secureuri);var frameId ='jUploadFrame'+ id;var formId ='jUploadForm'+ id;
// Watch for a new set of requests
if( s.global &&! jQuery.active++)
{jQuery.event.trigger("ajaxStart");
}var requestDone =false;
// Create the request objectvar xml ={}
if( s.global )jQuery.event.trigger("ajaxSend",[xml, s]);
// Wait for a response to come backvar uploadCallback = function(isTimeout)
{var io = document.getElementById(frameId);
try
{
if(io.contentWindow)
{xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerText:null;xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
}elseif(io.contentDocument)
{xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerText:null;xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
}
}catch(e)
{jQuery.handleError(s, xml,null, e);
}
if( xml || isTimeout =="timeout")
{requestDone =true;var status;
try{status = isTimeout !="timeout"?"success":"error";
// Make sure that the request was successful or notmodified
if( status !="error")
{
// process the data (runs the xml through httpData regardless of callback)var data = jQuery.uploadHttpData( xml, s.dataType );
// If a local callback was specified, fire it and pass it the data
if( s.success )s.success( data, status );
// Fire the global callback
if( s.global )jQuery.event.trigger("ajaxSuccess",[xml, s]);
}elsejQuery.handleError(s, xml, status);
}catch(e)
{status ="error";jQuery.handleError(s, xml, status, e);
}// The request was completed
if( s.global )jQuery.event.trigger("ajaxComplete",[xml, s]);// Handle the global AJAX counter
if( s.global &&!--jQuery.active )jQuery.event.trigger("ajaxStop");// Process result
if( s.complete )s.complete(xml, status);jQuery(io).unbind()setTimeout(function()
{try
{jQuery(io).remove();jQuery(form).remove();
}catch(e)
{jQuery.handleError(s, xml,null, e);
}},100)xml =null}
}
// Timeout checker
if( s.timeout >0)
{setTimeout(function(){
// Check to see if the request is still happening
if(!requestDone ) uploadCallback("timeout");
}, s.timeout);
}
try
{var form = jQuery('#'+ formId);jQuery(form).attr('action', s.url);jQuery(form).attr('method','POST');jQuery(form).attr('target', frameId);
if(form.encoding)
{jQuery(form).attr('encoding','multipart/form-data');
}
else
{jQuery(form).attr('enctype','multipart/form-data');
}jQuery(form).submit();}catch(e)
{jQuery.handleError(s, xml,null, e);
}jQuery('#'+ frameId).load(uploadCallback);
return{abort: function(){
try
{jQuery('#'+ frameId).remove();jQuery(form).remove();
}
catch(e){}
}};
},uploadHttpData: function( r, type ){var data =!type;data = type =="xml"|| data ? r.responseXML: r.responseText;
// If the type is "script", eval it in global context
if( type =="script"){jQuery.globalEval( data );
}elseif( type =="json"){eval("data = "+ data );
}elseif(type =="html"){jQuery("<div>").html(data).evalScripts();
}
return data;
},handleError: function( s, xml, status, e ){
// If a local callback was specified, fire it
if( s.error )s.error( xml, status, e );// Fire the global callback
if( s.global )jQuery.event.trigger("ajaxError",[xml, s, e]);
}
});


js

    $.ajaxFileUpload({url : ctx+"/media/uploadImages",//			secureuri : false,//安全type:"Post",dataType:'json',data :{"questionMainId": getQuestionMainId,"imageType": imageType,"pictureID":pictureID},fileElementId :"fileCoursePoster",// 文件选择框的id属性success : function(data, status){alert("上传成功!");},error : function(XMLHttpRequest, textStatus, errorThrown){alert("上传失败!");}});


后台

1.封装的java类


    /*** mongo底层代码,由于底层代码没有我需要的东西,只能在这里重新写一遍了* 十一期  谭倩倩* @MethodName	: getMongo* @Description	: 获取数据连接* @return 返回mongon*/privateMongo getMongo(){Mongo mongo=null;try{mongo =newMongo("192.168.22.246",27017);}catch(Exception e){e.printStackTrace();}return mongo;}/*** mongo底层代码,由于底层代码没有我需要的东西,只能在这里重新写一遍了* 十一期  谭倩倩*  @MethodName	: uploadFile* @Description	: 上传文件* @param file :文件,File类型* @param delPictureID	:唯一标示文件,可根据id查询到文件.必须设置* @param dbName :库名,每个系统使用一个库* @param collectionName:集合名,如果传入的集合名库中没有,则会自动新建并保存* @param map:放入你想要保存的属性,例如文件类型(“congtentType”".jpg"),字符串类型,区分大小写,如果属性没有的话会自动创建并保存*/publicvoid uploadFileByObjectId(File file ,ObjectId delPictureID,String dbName,String collectionName,LinkedHashMap<String,Object> map){//把mongoDB的数据库地址配置在外部。try{Mongo mongo =getMongo();//每个系统用一个库DB db= mongo.getDB(dbName);System.out.println(db.toString());//每个库中可以分子集GridFS gridFS=newGridFS(db,collectionName);// 创建gridfsfile文件GridFSFile gridFSFile = gridFS.createFile(file);//将文件属性设置到gridFSFile.put("_id", delPictureID);//循环设置的参数if(map !=null&& map.size()>0){for(String key : map.keySet()){gridFSFile.put(key, map.get(key));}}//保存上传gridFSFile.save();}catch(Exception e){e.printStackTrace();}}

2.Controller代码

 

    /*** 十一期 谭倩倩* 上传图片* @param filePhone* @param request* @param response* @throws IOException*/@RequestMapping(value ="media/uploadImages", produces ="text/plain;charset=UTF-8")@ResponseBodypublicvoid uploadImages(HttpServletRequest request,HttpServletResponse response)throwsIOException{QuestionMain enQuestionMain=null;String getPath=null;String dataBaseName =(String) request.getSession().getAttribute(CloudContext.DatabaseName)+DataBaseClass.getExamdatabase();MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest)request;String fileName="";String questionMainId=request.getParameter("questionMainId");ObjectId pictureID=ObjectId.get();String delPictureID=pictureID.toString();System.out.println(delPictureID);for(Iterator it=multipartRequest.getFileNames();it.hasNext();){String key=(String)it.next();MultipartFile nulfile=multipartRequest.getFile(key);fileName=nulfile.getOriginalFilename();//File getFilePath=new File(fileName);String logoRealPathDir = request.getSession().getServletContext().getRealPath(fileName);File localFile =newFile(logoRealPathDir);LinkedHashMap map =newLinkedHashMap();String mongoDbName ="exam";String collectionName ="aa";MongoUtil mongoUtil =newMongoUtil();nulfile.transferTo(localFile);try{this.uploadFileByObjectId(localFile, pictureID, mongoDbName, collectionName,map);System.out.println("导入图片成功!!");}catch(Exception e){System.out.println("导入图片失败!!");}try{enQuestionMain=questionMainBean.queryQuestionMainById(questionMainId, dataBaseName);System.out.println("查询题干成功");enQuestionMain.setImageName(delPictureID);enQuestionMain.setDataBaseName(dataBaseName);boolean flag=paperMainBean.updateQuestionMain(enQuestionMain);if(flag==true){System.out.println("更新成功");}}catch(Exception e){System.out.println("更新失败");}getPath="http://192.168.22.248/exam/"+pictureID;;}jacksonJson.beanToJson(response,getPath);}

这篇关于itoo在线编辑——mongo学习1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112035

相关文章

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Python+Tkinter实现Windows Hosts文件编辑管理工具

《Python+Tkinter实现WindowsHosts文件编辑管理工具》在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的必修课,本文将完整解析一个基于Python... 目录一、前言:为什么我们需要专业的Hosts管理工具二、工具核心功能全景图2.1 基础功能模块2.2 进

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

MySQL使用binlog2sql工具实现在线恢复数据功能

《MySQL使用binlog2sql工具实现在线恢复数据功能》binlog2sql是大众点评开源的一款用于解析MySQLbinlog的工具,根据不同选项,可以得到原始SQL、回滚SQL等,下面我们就来... 目录背景目标步骤准备工作恢复数据结果验证结论背景生产数据库执行 SQL 脚本,一般会经过正规的审批

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx