随笔 - 57,  文章 - 0,  评论 - 25,  阅读 - 26624

1.服务端(主要用于生成上传,删除,下载等凭证)

引入Qiniu的Get包。包就叫Qiniu。

//上传凭证

复制代码
       //上传凭证:其余凭证类似的写法
     public string UpLoadToken() { //密钥 Mac mac = new Mac("AK", "SK"); // 存储空间名 string Bucket = "wximagess"; //上传凭证 PutPolicy putPolicy = new PutPolicy(); //凭证有效时间 putPolicy.SetExpires(7200); //存储空间名 。覆盖上传要写成 putPolicy.Scope = Bucket:key; key是文件名 putPolicy.Scope = Bucket; //上传的内容定时删除(自定义)30天 putPolicy.DeleteAfterDays = 30; string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString()); return token; }
复制代码

 服务端直接下载

复制代码
  ·  public string Down()
        {
            Mac mac = new Mac("AK", "SK");
//下载的地址  
string domain = "http://rkp2te65d.bkt.clouddn.com";
       //下载的文件名
string key = "测试上传2";
       //下载外链 3600外链有效期
string privateUrl = DownloadManager.CreatePrivateUrl(mac, domain, key, 3600); Console.WriteLine(privateUrl); return privateUrl; }
复制代码

 服务端直接上传

复制代码
       public string UpLoad()
        {
            //密钥
            Mac mac = new Mac("AK", "SK");
            //文件名
            string key = "测试上传2";
            // 本地文件路径
            string filePath = "C:\\素材\\图片\\6a04b428gy1fyrlfhjaz1g207i07ijy0.gif";
            // 存储空间名
            string Bucket = "XXX";
       //上传凭证
            PutPolicy putPolicy = new PutPolicy();
            putPolicy.SetExpires(7200);
            putPolicy.Scope = Bucket;
       //自定义返回结果,可不设置,也可根据官网自定义,这里是官网给的自定义例子 putPolicy.ReturnBody
= "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"fsiz\":$(fsize),\"bucket\":\"$(bucket)\",\"name\":\"$(x:fname)\"}"; putPolicy.DeleteAfterDays = 30;        //凭证 string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());         Config config = new Config(); // 空间对应的机房.这里官网给的并不全,新出的空间地域无法直接引用,需要自己根据官网的地址New出新的机房、这里是华东浙江2 config.Zone = new Qiniu.Storage.Zone { ApiHost = "api.qiniuapi.com", CdnUpHosts = new string[1] { "upload-cn-east-2.qiniup.com" }, RsHost = "rs-cn-east-2.qiniuapi.com", RsfHost = "rsf-cn-east-2.qiniuapi.com", IovipHost = "iovip-cn-east-2.qiniuio.com", SrcUpHosts = new string[1] { "up-cn-east-2.qiniup.com" }, }; // 是否使用https域名 https收费,我不使用 config.UseHttps = false; // 上传是否使用cdn加速 config.UseCdnDomains = true;        //表单上传。好像百兆以下都可以,超过百兆可以分片上传,图片使用表单上传就好,免费空间只有10G。上传图片还可,视频肯定不够用 FormUploader target = new FormUploader(config); HttpResult result = target.UploadFile(filePath, key, token, null);          return "form upload result: " + result.ToString(); }
复制代码

 

2.Ajax请求上传图片

复制代码
function A() {
        $.ajax({
            //请求服务端拿到上传凭证
            url: "http://xxxx",
            type: "get",
            success: function (res) {
                var token = res;
                // localData是图片的base64数据,你可以用任何方式得到你图片的Base64编码
                var localData = "XXXXX";
                //七牛云只需要Base64后面的内容,因此把多余的前缀删除
                localData = localData.replace("data:image/jgp;base64", "");
                //开始上传
                $.ajax({
                    url: "http://upload-cn-east-2.qiniup.com/putb64/-1",
                    type: "post",
                    beforeSend(request) {
                        request.setRequestHeader("Content-Type", "application/octet-stream");
                        request.setRequestHeader("Authorization", "UpToken " + token);
                    },
                    data: localData,
                    success: function (res) {
                        //上传成功后把文件名key存到自己的数据库里
                        var imageKey = res.key;
                        $.ajax({
                            url: "http://XXXX/UploadImage",
                            type: "post",
                            data: imageKey,
                            headers: {
                                "Content-Type": "application/json"
                            }
                            ,
                            success: function (res) {
                                alert(res);
                            }
                        })
                    }
                })
            }
        })
    }
View Code
复制代码

 

        

 

posted on   尝尝手指  阅读(464)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示