c# MVC下文件下载后Memorystream上传到别的服务器出问题解决方案

在C# MVC环境下,从微信获取media_id下载的图片被存储到MemoryStream,但在尝试将其上传到另一服务器时遇到问题。通过对比发现MemoryStream的Position与Length相同,导致无法读取内容。解决办法是在上传前将MemoryStream的Position设为0,确保正确读取数据并成功上传。
摘要由CSDN通过智能技术生成

需求是从微信通过media_id去下载图片到MemoryStream,然后将该MemoryStream直接上传到自己的服务器保存。


        

/// <summary>
        /// 下载多媒体文件
        /// </summary>
        /// <param name="media_id">多媒体ID</param>
        /// <param name="asToken"></param>
        /// <returns></returns>
        public Stream download_img(string media_id, string asToken, out string err)
        { 
            err="";
            try
            {
                Stream retStream = KisCommon.GetDownLoadFile("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + asToken + "&media_id=" + media_id);
                return retStream;
            }
            catch(Exception ex)
            {
                err = ex.Message;
            }


            return null;
        }

        public static Stream GetDownLoadFile(String url)
        {
            WebRequest request = WebRequest.Create(url);
            WebResponse response = request.GetResponse();
            Stream reader = response.GetResponseStream();
            Stream retStream = new MemoryStream();
            byte[] buff = new byte[512];
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值