私はPDF生成プログラムを使用してユーザーにファイルを送信するプロジェクトがあります。代わりにこのファイルを電子メールに添付するオプションをユーザに与えたいと思います。私たちはStreamオブジェクトとAttachmentロジックを一緒に使用することに問題があります。System.Net.Mailへの添付ファイルとしてのストリームは0バイトです
まず、ABCpdfには2つの保存メソッドがあります。ストリームに保存するか、文字列を指定すると、ディスク上のファイルに保存しようとします。私たちはどちらも問題なかった。 stream
は、データの数キロバイトを持っており、あなた.SAVE()ファイルへの場合は、同じバイト数と実際のファイルを取得 -
Stream stream = new MemoryStream();
myPdf.Save(stream);
すべては、この時点では、主にクールです。
だから我々は(への設定、メールオブジェクトを初期化した後:と:などから):この時点で、メールに添付し
mail.Attachments.Add(new Attachment(stream, "myPdf.pdf"));
mail.Send();
...限り電子メールを受け取るように私たちを取得します0バイトで、しかし適切なファイル名で。
私がオンラインで探しているすべての例では、StreamReaderまたはStreamWriterまたはFlush()などを使用しています。ストリームを渡すよりも複雑なように思えますが、1行または2行だけ複雑になることもあります。これらの例はどれもStreamから始まっていません。アレイをStreamに変えて、どれくらい簡単かを示したり、ディスクからファイルを取得しようとしています(これはできません。ストリームを使用する)。
とにかく、誰かが私が間違っていることや私がやっているべきことを説明できるなら、本当に感謝します。ありがとう。
を送信する前に、私の添付ファイルは64のバイトでしたが開くと、それはファイルが無効であると言いました。 以下の解決法もこれを修正したので、単に0バイトと言うだけではありません。 –