用ueditor上传图片、文件等到七牛云存储
2015-09-12 23:13
465 查看
ueditor上传文件,是用数据流的形式上传的。
而七牛云存储官方文档中,只提供了文件路径上传的方式。
但是,仅仅是在官方文档中写了这一种方式。
事实上,利用VS的对象管理器,打开Qiniu的dll,我们可以看到以下东西:
其实Qiniu提供的SDK中,是可以利用文件流上传文件的。
所以,根据官方文档提供的案例,我们可以将上传改写成下面的样子:
/// <summary> /// 上传文件 /// </summary> /// <param name="key">保存的文件名</param> /// <param name="fileStream">本地文件路径</param> public static void PutFile(string key, Stream fileStream) { var policy = new PutPolicy(bucket, 3600); string upToken = policy.Token(); PutExtra extra = new PutExtra(); IOClient client = new IOClient(); client.Put(upToken, key, fileStream, extra); }
其实就只修改了PutFile的参数,我将bucket(七牛上的空间名)做成了成员变量。
另外的变化就是用Stream代替了原来的文件名。
最后的client调用也是使用的上面查看的Put方法。
写好上传的方法之后,我们打开editor的UploadHandler.cs文件,修改其中的部分内容,用文件流上传文件:
//var savePath = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat); //var localPath = Server.MapPath(savePath); try { //if (!Directory.Exists(Path.GetDirectoryName(localPath))) //{ // Directory.CreateDirectory(Path.GetDirectoryName(localPath)); //} //File.WriteAllBytes(localPath, uploadFileBytes); Qiniu.Conf.Config.ACCESS_KEY = "****************************************"; Qiniu.Conf.Config.SECRET_KEY = "****************************************"; PutFile(uploadFileName, new MemoryStream(uploadFileBytes)); Result.Url = MakeGetToken(uploadFileName); Result.State = UploadState.Success; }
注释的部分是ueditor提供的案例代码,我们创建一个MemoryStream对象,传给PutFile的Stream参数。
这里不能直接使用file.InputStream。
最后的那个MakeGetToken方法,用来生成上传的后的文件路径,也是修改自官方文档。
因为我用的是七牛云的私人空间,所以需要多出这样一个步骤:
/// <summary> /// 得到上传后的文件URL路径。 /// </summary> /// <param name="key">文件名</param> /// <returns>带有下载口令的URL路径</returns> public static string MakeGetToken(string key) { string baseUrl = GetPolicy.MakeBaseUrl(domain, key); string private_url = GetPolicy.MakeRequest(baseUrl); return private_url; }
同样的,这里我将domain设置为成员变量。
最后,一定要记得把ueditor中config.json的"imageUrlPrefix"的值设置为空,否则在你上传成功了,在ueditor中也是无法直接查看上传的内容,因为会imageUrlPrefix会默认的加载你的文件链接前面。
相关文章推荐
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
- ueditor上传图片到七牛云存储(form api,java)
- 修改ueditor的上传文件、图片、视频等路径
- UEditor图片上传文件路径
- jfinal+ueditor上传图片、文件报“未找到上传数据错误”的解决方案
- django 与 百度 ueditor 富文本编辑器集成之一:图片上传,文件上传
- Ueditor 1.4.3 单独调用上传图片,或文件功能
- 独立使用UEditor编辑器图片和文件上传(调用内置第三方插件swfupload)
- 百度开源富文本编辑器 UEditor配置:图片上传和文件上传独立使用方法
- ueditor上传图片时目录创建失败的问题解决方法,不用那么麻烦,其实修改php/config.json这个配置文件里面的路径就行!!
- UEditor配置:图片上传和文件上传独立使用方法,兼容最新版 UEditor 1.4.3
- ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案
- ueditor精简和实现上传图片文件等
- Java开发七牛云存储 ,上传视频与图片文件 , 页面播放器GrindPlayer.swf
- 上传文件(图片、视频等)至七牛云存储核心内容
- 关于ueditor 在struts2 中 上传图片 ,未找到上传文件 问题的解决方法
- Ueditor结合七牛云存储上传图片、附件和图片在线管理的实现和最新更新
- 百度ueditor 拖文件或world 里面复制粘贴图片到编辑中 上传到第三方问题
- ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案
- 使用PHP实现七牛云存储图片(文件)上传