私はaspxを実行しているWebアプリケーションを持っています。提出中、サポート文書(通常はpdfに変換された画像)がSQLサーバにアップロードされ、バイナリとして保存され、承認中にさまざまな時点で再度ダウンロードできます。ウェブサイトからダウンロードしてPDFファイルを開くことはできませんが、Edgeで開くことができます
しかし、私たちはユーザーがAdobeのAdobe Readerでpdfを開くことができず、恐ろしい "ファイルが壊れて修復できませんでした"という問題が発生し始めたところです。エラーメッセージ。彼らはまだMSエッジで開くことができるので、実際には破損していません。私はpdfがアップロードされる前に正常に開けられることを確認しました。
HttpPostedFile file = this.attachmentUploader.PostedFile;
if (file == null)
{
file = Session["postedFile"] as HttpPostedFile;
}
if (file != null)
{
var fileName = this.attachmentUploader.FileName;
fileName = fileName.Length >= 100 ? string.Concat(fileName.Substring(0, 50).Trim(), ".pdf") : fileName;
Attachment attachment = new Attachment()
{
FileName = fileName,
File = this.attachmentUploader.FileBytes
};
db.Attachments.Add(attachment);
db.SaveChanges();
}
これは大歓迎任意のヘルプダウンロードコード
byte[] file = null;
// Code here to pull file from db
if (file != null)
{
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename=support_doc.pdf");
Response.OutputStream.Write(file, 0, file.Length);
}
です!
*「まだMSエッジで開くことができるので、実際には破損していません。」* - 間違っています。たぶん偶然に1人の視聴者が実際にガーベジであるかもしれないものを正しく表示しているからといって、データがガーベジではないというわけではありません。ダメージの比較と分析を可能にするために、PDFを良いバージョンと悪いバージョンの両方で共有した場合に役立ちます。 – mkl