zoukankan      html  css  js  c++  java
  • ASP.NET 将文件流写入临时文件,并打开

    今天遇到一个开发任务,需要调取第三方接口,接口返回Stream文件流(pdf文件),然后供用户打印。

    以下是源码:

     public void PrintOrderTestForpdf()
            {
                //1、创建实体
                PrintOrderInfo model = new PrintOrderInfo()
                {
                    ApiToken = "XXX",
                    LabelFormat = "A4_2",
                    OutPutFormat = "pdf",
                    PrintCustoms = false,
                    PrintProduct = false,
                    PrintProductFormat = "{sku}",
                    OrderList = new List<PrintOrderDetail>()
                    {
                        new PrintOrderDetail() { OrderId="123456",TrackingNo=""}
                    }
                };
                //2、请求接口,并接收返回的文件流
                MemoryStream bts = (MemoryStream)RuiYouPaiDal.Instance.PrintOrderForPdf(model);
                //3、将文件流写去临时的pdf文件,并打开
                Process.Start(GererateFileName(bts));
            }
     /// <summary>
            /// 将接收到的文件流写入临时文件
            /// </summary>
            /// <param name="result"></param>
            /// <returns></returns>
            public static string GererateFileName(MemoryStream result)
            {
                var filename = GetGeneratedFileName();//1、生成.pdf格式的临时文件
                var fs = new FileStream(filename, FileMode.OpenOrCreate);
                var w = new BinaryWriter(fs);
                w.Write(result.ToArray());//2、将接收到的文件流写入临时文件
                fs.Close();
                result.Close();
    
                return filename;
            }
            /// <summary>
            /// 生成临时文件
            /// </summary>
            /// <returns></returns>
            public static string GetGeneratedFileName()
            {
                var guid = Guid.NewGuid().ToString().Replace("-", "");
                var filepath = Path.Combine(Path.GetTempPath(), guid + ".pdf");
                return filepath;
            }

      文件流操作总是易忘,只能经常复习,经常总结了。。。。

  • 相关阅读:
    码到成功——Beta冲刺随笔 day 6
    团队作业第六次——Beta冲刺
    Beta冲刺 —— 6.2
    用户调查报告
    Beta冲刺 —— 总结随笔
    Beta冲刺——测试随笔
    Beta冲刺 —— 6.1
    Beta冲刺 —— 5.31
    Beta冲刺 —— 5.30
    Beta冲刺 —— 5.29
  • 原文地址:https://www.cnblogs.com/czqbk/p/6566573.html
Copyright © 2011-2022 走看看