zoukankan      html  css  js  c++  java
  • 调用接口直接下载文件

    我想使用webservice从一个网站将文件推送到浏览器.我正在将文件读入base64字节数组,并从webservice返回.这个webservice是从一个网站调用的,我坚持把这个原始文件推送到浏览器.理想情况下,我想将字节数组读入内存流,然后只要将其写入响应流即可,最终用户只需下载文件即可.

    解决方法

    首先,而不是发送一个base64字节的数组,让您的Web服务只返回一个字节数组为您的文件. Response.OutputStream.Write()将自动对您的字节进行base64编码,因此您也可以将它们在内存流中进行编码.

    其次,您不仅需要字节数.您将需要与文件关联的元数据.对于下面的代码片段,我将所有的元数据放在一个单独的类(本地实例名为“file”)中.然后,只要使用此代码段,一旦您拥有所需的数据:

        

    var stream = fhelp.DownloadFile(fileId);
    var ms = new MemoryStream();
    stream.CopyTo(ms);
    ServiceLog.Info(string.Format("调用【下载文件】方法,处理结果:{0}", Convert.ToBase64String(ms.GetBuffer())));
    var file = ms.GetBuffer();
    Context.Response.Clear();
    Context.Response.ClearHeaders();
    Context.Response.ContentType = "application/octet-stream";
    Context.Response.AddHeader("Content-Disposition", "attachment; filename="" + "uuuuu" + """);
    Context.Response.AddHeader("Content-Length", file.Length.ToString());
    Context.Response.OutputStream.Write(file,0,file.Length);//(file.Bytes, file.Bytes.Length)
    Context.Response.Flush();
    Context.Response.End();

     原文网址:https://www.jb51.cc/csharp/91742.html

  • 相关阅读:
    文字搬运工
    软件测试的左移方法(译)
    开启iOS自动化测试
    当一个数不是数字时:随机测试生成器的好处(译)
    Appium进行iOS自动化测试时遇到的问题及解决办法
    adb.exe 已停止工作的解决办法
    工具书
    安卓appium自动化测试
    Loadrunner安装使用入门
    使用Fiddler进行APP弱网测试
  • 原文地址:https://www.cnblogs.com/liuqiang18/p/11934822.html
Copyright © 2011-2022 走看看