当前位置: 首页 > news >正文

七牛云:ckeditor JS SDK 结合 C#实现多图片上传。

成功了,搞了2天。分享一下经验。

首先是把官方的那个例子下载下来,然后照如下的方式修改。

其中tempValue是一个全局变量。

function savetoqiniu() {

	var uploader = Qiniu.uploader({
	runtimes: "html5,flash,html4",
	browse_button: "setfile",
	    save_key:false,
	//uptoken: qiniu_uptoken,
	get_new_uptoken: true,
	uptoken_func:function()
	{
	    tempValue=GetFileInfo();
	    var res = $.ajax({
	        type: "get",
	        data: {
	            key: tempValue
	        },
	        url: "/goods/CkeditorGetUploadToken/",
	            async: false
	    });
	    return JSON.parse(res.responseText).uptoken;
	},
	//uptoken_url: "/goods/CkeditorGetUploadToken?key=" + tempValue,
	domain: qiniu_bucket_domain,
	container: "container",
	max_file_size: "6mb",
	filters: {
		mime_types: [{
			title: "Image files",
			extensions: "jpeg,jpg,gif,png,wbmp"
		}]
	},
	flash_swf_url: "./Moxie.swf",
	max_retries: 3,
	dragdrop: true,
	drop_element: "container",
	chunk_size: "4mb",
	auto_start: false,
	init: {
		"PostInit": function() {
			document.getElementById("uploadfile").onclick = function() {
				//document.getElementById("setfile").style.display = "none";
				uploader.start();
				return false
			}
		},
		"FilesAdded": function(up, files) {
			plupload.each(files,
			function(file) {
			    document.getElementById("fileinfo").innerHTML += '<div id="' + file.id + '">' + file.name + "   (" + plupload.formatSize(file.size) + ")      <b></b>	<i></i></div><br>";
			    //var key = Math.round(new Date().getTime() / 1000) + "_" + file.name;
			    //keyQiniuUpload = key;
			    //Test2();
			})
		},
		"BeforeUpload": function (up, file) {
		    
        },
		"UploadProgress": function(up, file) {
			document.getElementById(file.id).getElementsByTagName("b")[0].innerHTML = "<span>" + file.percent + "%</span>"
		},
		"FileUploaded": function(up, file, info) {
			var res = JSON.parse(info);
			var sourceLink = qiniu_bucket_domain + "/" + res.key;
			document.getElementById(file.id).getElementsByTagName("i")[0].innerHTML = sourceLink;
			window.CKEDITOR.tools.callFunction(1, sourceLink, 'ok');
		},
		"Error": function(up, err, errTip) {},
		"UploadComplete": function() {},
		"Key": function(up, file) {
		    var key = tempValue;
			console.log(up);

			return key;
		}
	}
});
}

  另外注意一点,就是KEY要传到后台去的,每次的KEY不同。下面是C#代码。

        /// <summary>
        /// 获得CKEDITOR上传凭证
        /// </summary>
        /// <returns></returns>
        public ActionResult CkeditorGetUploadToken(string key)
        {
           string s= UploadUtil.GetUploadToken("kmsfan",key);

            if (!string.IsNullOrEmpty(s))
            {
                token token1 = new token();
                token1.uptoken = s;
                s = JsonConvert.SerializeObject(token1);
                //HttpContext.Response.ContentType = "text/plain";
                return Content(s);
                //return Json(new { uptoken = s});
            }
            return Json(new { IsSuccess = false });
        }

  网上还没找到类似的解法,我这人不太善于表达,如果有需要的话,不懂的,请在底下留言。

转载于:https://www.cnblogs.com/kmsfan/p/5861566.html

相关文章:

  • Linux之进程管理(1)基本介绍
  • HTML元素坐标定位,这些知识点得掌握
  • C#抽象类与抽象方法--就是类里面定义了函数而函数里面什么都没有做的类
  • Oracle 一次 锁表 处理小记
  • Apache所有项目介绍
  • 太吃鸡了
  • 51 nod 1681 公共祖先 (主席树+dfs序)
  • 环境搭建中项目源码地址(零)
  • secure shell(SSH)
  • 关于JAVA日志
  • 在 Node.js 中检测端口 port 是否被占用
  • NFS4中小企业存储实战
  • Lua中实现table的打印输出(print table)
  • win10系统 VMWare12.5虚拟机 Ubuntu 16.04 LTS 开始我的Linux学习
  • 浏览器兼容处理
  • bootstrap创建登录注册页面
  • iOS 系统授权开发
  • MySQL QA
  • oldjun 检测网站的经验
  • Protobuf3语言指南
  • win10下安装mysql5.7
  • 基于游标的分页接口实现
  • 计算机常识 - 收藏集 - 掘金
  • 简单数学运算程序(不定期更新)
  • 巧用 TypeScript (一)
  • 设计模式走一遍---观察者模式
  • 世界上最简单的无等待算法(getAndIncrement)
  • 我从编程教室毕业
  • 我与Jetbrains的这些年
  • nb
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二十四)Flask之flask-session组件
  • (学习日记)2024.01.19
  • (已解决)什么是vue导航守卫
  • (转)EOS中账户、钱包和密钥的关系
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET CORE Aws S3 使用
  • .NET Framework杂记
  • .Net Redis的秒杀Dome和异步执行
  • .Net 代码性能 - (1)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .php文件都打不开,打不开php文件怎么办
  • @selector(..)警告提示
  • @synthesize和@dynamic分别有什么作用?
  • [ NOI 2001 ] 食物链
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大