標籤:efi images int pat path open asp.net 臨時檔案 ppa
今天遇到一個開發工作單位,需要調取第三方介面,介面返回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; }
檔案流操作總是易忘,只能經常複習,經常總結了。。。。
ASP.NET 將檔案流寫入臨時檔案,並開啟