PDF 생성기를 사용하여 파일을 사용자에게 보내는 프로젝트가 있습니다. 사용자에게 대신이 파일을 이메일에 첨부 할 수있는 옵션을 제공하고 싶습니다. 그리고 Stream 객체와 첨부 논리를 함께 사용하는 데 문제가 있습니다.System.Net.Mail에 대한 첨부 파일 스트림이 0 바이트입니다.
두 가지 저장 방법이있는 ABCpdf로 시작합니다. 스트림에 저장할 수 있습니다. 또는 문자열을 지정하면 디스크의 파일로 저장하려고 시도합니다. 우리는 두 가지 문제를 모두 해결했습니다. stream
데이터의 몇 킬로바이트가 있고 .Save() 파일에, 당신은 동일한 수의 바이트로 실제 파일을 얻을 -
Stream stream = new MemoryStream();
myPdf.Save(stream);
모든 것이이 시점에서 대부분 멋지다. 이메일을 수신으로까지 우리를 얻을 수
mail.Attachments.Add(new Attachment(stream, "myPdf.pdf"));
mail.Send();
을 ... :
그래서 우리는 (: 및 :, 등등에서에 설정, 메일 객체를 초기화 한 후)이 시점에서 이메일에 첨부 0 바이트이지만 적절한 파일 이름.
모든 예제에서는 온라인에서 StreamReader 또는 StreamWriter 또는 Flush() 등을 사용하고 있습니다. 스트림을 전달하는 것보다 더 복잡한 것처럼 보이지만 한 두 줄만 복잡해집니다. 이 예제들은 Stream으로 시작하지 않습니다. 항상 배열을 스트림으로 변환하여 디스크가 얼마나 쉬운지를 보여 주거나 디스크에서 파일을 가져 오려고합니다 (우리는 할 수 없기 때문에 흥분됩니다). 스트림 사용).
어쨌든 누구나 내가 잘못하고있는 일이나 내가해야 할 일을 설명 할 수 있다면 정말 고맙겠습니다. 감사.
을 보내기 전에, 내 첨부 파일은 64 바이트했지만 개방에 파일이 유효했다. 아래 해결 방법도이 문제를 해결하여 0 바이트 라고만 표시하는 것이 아닙니다. –