简单的说说NuGet:
NuGet 是一个Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。(我们在安装Vs的时候一般都会附加,如果没有就需要额外安装)
这就是说: 我们往往在开发项目里,会使用一些第三方的dll, 如:Newtonsoft.Json.dll (它为我们提供了进行序列化和反序列化解决方案) 但是,我们往往也面临随着项目升级,对这些引入的第三方插件进行升级的可能和必要。
现在,NuGet 将这个过程系统化(代替你去寻找它的最新版本,下载,解压,然后替换等操作),令你可以更加方便的查找你要的第三方的dll, 同时,还可以为你提供自动或者手动更新的方式来升级你的插件。整个过程帮我们省事不少~
安装过程: —————————————————————————————————————————————— ———————————————————简单粗暴的分隔线——————————————————— ——————————————————————————————————————————————
观察UploadHandler中Process()方法里面的这段代码是实现将图片上传保存到网站目录下 先将代码注释掉
然后自己写上传到阿里云的代码
//上传到阿里云
using (Stream fileStream = new MemoryStream(uploadFileBytes))//转成Stream流
{
var fs = Request.Files[UploadConfig.UploadFieldName];
string md5 = OssUtils.ComputeContentMd5(fileStream, fs.ContentLength);
string today = DateTime.Now.ToString("yyyyMMdd");
string FileName = uploadFileName + today + Path.GetExtension(uploadFileName);//文件名=文件名+当前上传时间
string FilePath = "Upload/" + today + "/" + FileName;//云文件保存路径
try
{
//初始化阿里云配置--外网Endpoint、访问ID、访问password
OssClient aliyun = new OssClient("https://oss-cn-【外网Endpoint区域】.aliyuncs.com", "your Access Key ID", "your Access Key Secret");
//将文件md5值赋值给meat头信息,服务器验证文件MD5
var objectMeta = new ObjectMetadata
{
ContentMd5 = md5,
};
//文件上传--空间名、文件保存路径、文件流、meta头信息(文件md5) //返回meta头信息(文件md5)
aliyun.PutObject("bucketName", FilePath, fileStream, objectMeta);
//返回给UEditor的插入编辑器的图片的src
Result.Url = "https://bucketName.oss-cn-【外网Endpoint区域】.aliyuncs.com/" + FilePath;
Result.State = UploadState.Success;
}
catch (Exception e)
{
Result.State = UploadState.FileAccessError;
Result.ErrorMessage = e.Message;
}
finally
{
WriteResult();
}
}
上传功能实现(能上传但还不能在编辑器中预览,还需要改造下Ueditor配置文件,见第二部分~ ~ )
ps:这里因为PutObject方法第三个参数需要Stream,而Ueditor源码是读取文件的byte[],小白的看不太懂源码就不太敢改,而是将获取的文件字节转换成了Stream流来上传使用。
另外需要一提的是
OssClient aliyun = new OssClient("https://oss-cn-【外网Endpoint区域】.aliyuncs.com", "your Access Key ID", "your Access Key Secret");
1、这里的外网Endpoint区域需要自行替换成你创建bucket里面分配的OSS区域,可在bucket概览中查看
2、Access Key ID和Access Key Secret需要我们去OSS创建(根据ID和Secret分配不同的权限操作OSS)
—————————————————————————————————————————————— ———————————————————简单粗暴的分隔线——————————————————— ——————————————————————————————————————————————
二、接下来还需要更改Ueditor的上传图片的配置信息
去除Ueditor自动加上的图片访问路径前缀,这样我们才能在上传成功之后预览到图片。 —————————————————————————————————————————————— ———————————————————简单粗暴的分隔线——————————————————— —————————————————————————————————————————————— 总结:在完成功能的路上也有走偏过掉到坑里,但一名好的程序员要懂得不懂就查,在运用的过程中要明白原理,知识不能停在表面的理解上,这样才能举一反三,活学活用,同时我发现,在调用功能包的时候,首先需要多翻看官网提供的API文档和功能介绍,理清它们之前的关系,不然对面各种类库文件眼花缭乱,只会让自己无从下手。
至此,成功完成Ueditor上传图片到阿里云OSS功能。小白还需要进步,欢迎大家指点。