图片自动上传,代码测试编译错误过长。
This commit is contained in:
parent
5180fdab39
commit
a39702f962
2
Gemfile
2
Gemfile
|
@ -40,8 +40,6 @@ gem 'kaminari'
|
||||||
gem 'elasticsearch-model'
|
gem 'elasticsearch-model'
|
||||||
gem 'elasticsearch-rails'
|
gem 'elasticsearch-rails'
|
||||||
|
|
||||||
gem 'certified'
|
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem 'grape-swagger'
|
gem 'grape-swagger'
|
||||||
gem 'better_errors', '~> 1.1.0'
|
gem 'better_errors', '~> 1.1.0'
|
||||||
|
|
|
@ -123,6 +123,7 @@ class StudentWorkController < ApplicationController
|
||||||
#-1 默认值 0全部正确并结束 2 超时 -2 编译错误
|
#-1 默认值 0全部正确并结束 2 超时 -2 编译错误
|
||||||
resultObj[:status] = -1
|
resultObj[:status] = -1
|
||||||
resultObj[:results] = result["results"].first #本次测试结果
|
resultObj[:results] = result["results"].first #本次测试结果
|
||||||
|
result["error_msg"] = result["error_msg"][0..1023]
|
||||||
resultObj[:error_msg] = result["error_msg"] #编译错误时的信息
|
resultObj[:error_msg] = result["error_msg"] #编译错误时的信息
|
||||||
|
|
||||||
#该状态用于存入CodeTests
|
#该状态用于存入CodeTests
|
||||||
|
|
|
@ -145,11 +145,11 @@ class Kindeditor::AssetsController < ApplicationController
|
||||||
Dir.mkdir(dirPath+dirDate)
|
Dir.mkdir(dirPath+dirDate)
|
||||||
end
|
end
|
||||||
|
|
||||||
fileStr = []
|
fileStr = ""
|
||||||
|
|
||||||
picArry.each_with_index do |picUrl,index|
|
picArry.each_with_index do |picUrl,index|
|
||||||
imgBaseName = File.basename(picUrl)
|
imgBaseName = File.basename(picUrl)
|
||||||
tmpImgType = imgBaseName.split(".").last[0..2]
|
tmpImgType = imgBaseName.split(".").last.split("?")[0]
|
||||||
# 仅支持如下图片格式:bmp,jpeg,jpg,png,gif,BMP,JPEG,JPG,PNG,GIF
|
# 仅支持如下图片格式:bmp,jpeg,jpg,png,gif,BMP,JPEG,JPG,PNG,GIF
|
||||||
|
|
||||||
fileType = tmpImgType.match("gif|jpg|jpeg|png|bmp|BMP|JPEG|JPG|PNG|GIF")
|
fileType = tmpImgType.match("gif|jpg|jpeg|png|bmp|BMP|JPEG|JPG|PNG|GIF")
|
||||||
|
@ -161,10 +161,13 @@ class Kindeditor::AssetsController < ApplicationController
|
||||||
fileDir = dirPath + dirDate + "/"+fileName
|
fileDir = dirPath + dirDate + "/"+fileName
|
||||||
|
|
||||||
#重点!!
|
#重点!!
|
||||||
File.open(fileDir,'wb'){ |f| f.write(open(picUrl).read) }
|
begin
|
||||||
fileDir = fileDir.split("public")[1]
|
File.open(fileDir,'wb'){ |f| f.write(open(picUrl).read) }
|
||||||
fileStr = filedir + "|"
|
fileDir = fileDir.split("public")[1]
|
||||||
|
rescue
|
||||||
|
fileDir = picUrl
|
||||||
|
end
|
||||||
|
fileStr = fileStr+fileDir + "|"
|
||||||
end
|
end
|
||||||
render :text =>fileStr
|
render :text =>fileStr
|
||||||
end
|
end
|
||||||
|
|
|
@ -5993,10 +5993,24 @@ _plugin('core', function(K) {
|
||||||
html = html.replace(/\n/g, '<br />$&');
|
html = html.replace(/\n/g, '<br />$&');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.insertHtml(html, true);
|
|
||||||
df();
|
|
||||||
|
|
||||||
// $("#ajax-indicator").hide();
|
// var kePasteContainer = document.getElementById("ke_paste");
|
||||||
|
// if (kePasteContainer == null) {
|
||||||
|
// kePasteContainer = document.createElement("div");
|
||||||
|
// kePasteContainer.id = "ke_paste";
|
||||||
|
// var last=document.body.lastChild;//得到页面的最后个元素
|
||||||
|
// document.body.insertBefore(kePasteContainer,last);//在得到的最后元素之前插入
|
||||||
|
// }
|
||||||
|
// kePasteContainer.innerHTML = html;
|
||||||
|
// $("#ke_paste").hide();
|
||||||
|
//
|
||||||
|
// var imglist = $("#ke_paste").find("img");
|
||||||
|
//
|
||||||
|
// if (imglist.length > 0){
|
||||||
|
// df(self);
|
||||||
|
// }
|
||||||
|
self.insertHtml(html, true);
|
||||||
|
df(self);
|
||||||
}
|
}
|
||||||
K(doc.body).bind('paste', function(e){
|
K(doc.body).bind('paste', function(e){
|
||||||
if (self.pasteType === 0) {
|
if (self.pasteType === 0) {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// Generated by CoffeeScript 1.9.0
|
// Generated by CoffeeScript 1.9.0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
paste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.
|
paste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.
|
||||||
https://github.com/layerssss/paste.js
|
https://github.com/layerssss/paste.js
|
||||||
*/
|
*/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
@ -279,7 +279,7 @@ https://github.com/layerssss/paste.js
|
||||||
}
|
}
|
||||||
//firefox问题处理,因为采用了 pastableContenteditable 模式,故只需要删除默认的粘贴
|
//firefox问题处理,因为采用了 pastableContenteditable 模式,故只需要删除默认的粘贴
|
||||||
if ($(img).attr('src').startsWith('data:image/')) {
|
if ($(img).attr('src').startsWith('data:image/')) {
|
||||||
_results.push($(img).remove());
|
_results.push($(img).remove());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return _results;
|
return _results;
|
||||||
|
@ -307,23 +307,23 @@ function enablePasteImg(_editor) {
|
||||||
$(nodeBody).pastableContenteditable();
|
$(nodeBody).pastableContenteditable();
|
||||||
|
|
||||||
dataURItoBlob = function(dataURI) {
|
dataURItoBlob = function(dataURI) {
|
||||||
// convert base64/URLEncoded data component to raw binary data held in a string
|
// convert base64/URLEncoded data component to raw binary data held in a string
|
||||||
var byteString;
|
var byteString;
|
||||||
if (dataURI.split(',')[0].indexOf('base64') >= 0)
|
if (dataURI.split(',')[0].indexOf('base64') >= 0)
|
||||||
byteString = atob(dataURI.split(',')[1]);
|
byteString = atob(dataURI.split(',')[1]);
|
||||||
else
|
else
|
||||||
byteString = unescape(dataURI.split(',')[1]);
|
byteString = unescape(dataURI.split(',')[1]);
|
||||||
|
|
||||||
// separate out the mime component
|
// separate out the mime component
|
||||||
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
|
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
|
||||||
|
|
||||||
// write the bytes of the string to a typed array
|
// write the bytes of the string to a typed array
|
||||||
var ia = new Uint8Array(byteString.length);
|
var ia = new Uint8Array(byteString.length);
|
||||||
for (var i = 0; i < byteString.length; i++) {
|
for (var i = 0; i < byteString.length; i++) {
|
||||||
ia[i] = byteString.charCodeAt(i);
|
ia[i] = byteString.charCodeAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Blob([ia], {type:mimeString});
|
return new Blob([ia], {type:mimeString});
|
||||||
};
|
};
|
||||||
|
|
||||||
$(nodeBody).on('pasteImage', function(ev, data) {
|
$(nodeBody).on('pasteImage', function(ev, data) {
|
||||||
|
@ -337,15 +337,15 @@ function enablePasteImg(_editor) {
|
||||||
data.append("imgFile",blob, "imageFilename.png");
|
data.append("imgFile",blob, "imageFilename.png");
|
||||||
console.log(data);
|
console.log(data);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/kindeditor/upload?dir=image',
|
url: '/kindeditor/upload?dir=image',
|
||||||
contentType: false,
|
contentType: false,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: data,
|
data: data,
|
||||||
processData: false,
|
processData: false,
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
editor.exec('insertimage', JSON.parse(data).url);
|
editor.exec('insertimage', JSON.parse(data).url);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,8 +353,11 @@ function enablePasteImg(_editor) {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
function df() {
|
//复制粘贴时把远程图片上传到服务器
|
||||||
var img = $(".ke-edit-iframe").contents().find("img");
|
function df(myself) {
|
||||||
|
// var img = $("#ke_paste").find("img");
|
||||||
|
var currele = document.activeElement;
|
||||||
|
var img = $(currele).contents().find("img");
|
||||||
var piccount = 0;
|
var piccount = 0;
|
||||||
var sstr = "";
|
var sstr = "";
|
||||||
$(img).each(function (i) {
|
$(img).each(function (i) {
|
||||||
|
@ -367,24 +370,42 @@ function df() {
|
||||||
sstr += that.attr("src") + "|";
|
sstr += that.attr("src") + "|";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
uploadpic(sstr);
|
uploadpic(sstr,myself);
|
||||||
}
|
}
|
||||||
|
|
||||||
function uploadpic(piclist) {
|
function keShadow(myself)
|
||||||
|
{
|
||||||
|
var keShadowContainer = document.getElementById("ke_shadow");
|
||||||
|
if (keShadowContainer == null) {
|
||||||
|
keShadowContainer = document.createElement("div");
|
||||||
|
keShadowContainer.id = "ke_shadow";
|
||||||
|
keShadowContainer.innerHTML = "<div class='ui-widget-overlay' z-index: 1001;'></div>";
|
||||||
|
$("#ajax-modal").after(keShadowContainer);
|
||||||
|
}
|
||||||
|
var tWidth = document.body.scrollWidth;
|
||||||
|
var tHeight = document.body.scrollHeight;
|
||||||
|
$(".ui-widget-overlay").css("width", tWidth);
|
||||||
|
$(".ui-widget-overlay").css("height", tHeight);
|
||||||
|
$("#ke_shadow").show();
|
||||||
|
myself.readonly();
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadpic(piclist,myself) {
|
||||||
if (piclist.length == 0) return false;
|
if (piclist.length == 0) return false;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/kindeditor/uploadpic",
|
url: "/kindeditor/uploadpic",
|
||||||
data: "pic=" + piclist,
|
data:{"pic":piclist},
|
||||||
type: "GET",
|
type: "GET",
|
||||||
beforeSend: function () {
|
beforeSend: function () {
|
||||||
$("#ajax-indicator").text("图片上传中请稍等...");
|
// $("#ajax-indicator span").text("图片上传中请稍等...");
|
||||||
|
keShadow(myself);
|
||||||
},
|
},
|
||||||
success: function (msg) {
|
success: function (msg) {
|
||||||
if (msg !== "") {
|
if (msg !== "") {
|
||||||
var str = new Array();
|
var str = new Array();
|
||||||
str = msg.split('|');
|
str = msg.split('|');
|
||||||
var img = $(".ke-edit-iframe").contents().find("img");
|
var currele = document.activeElement;
|
||||||
|
var img = $(currele).contents().find("img");
|
||||||
var tIndex = 0;
|
var tIndex = 0;
|
||||||
$(img).each(function (i) {
|
$(img).each(function (i) {
|
||||||
var that = $(this);
|
var that = $(this);
|
||||||
|
@ -397,8 +418,15 @@ function uploadpic(piclist) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// else $("#confirm").text("上传失败!");
|
// $("#ajax-indicator span").text("载入中...");
|
||||||
|
$("#ke_shadow").hide();
|
||||||
|
myself.readonly(false);
|
||||||
}
|
}
|
||||||
|
}).fail(function(xhr, status){
|
||||||
|
// $("#ajax-indicator span").text("载入中...");
|
||||||
|
$("#ke_shadow").hide();
|
||||||
|
myself.readonly(false);
|
||||||
|
return;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue