- PR -

PDFファイルのダウンロードで「ファイルを修復できません」エラー

1
投稿者投稿内容
Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2004-06-08 19:05
Mickyでございます。
いつもお世話になっております。

WEBアプリにて、いろんな種類のファイルをダウンロードする処理を
作成しているのですが、PDFファイルのみ、

「この文書を開くときエラーが発生しました。ファイルを修復できません」

というエラーが表示されてしまいます。
(Acrobat Readerが起動した後表示されるメッセージです)

ダウンロードのダイアログで「保存」を選択して、
ローカル環境に保存した後、開こうとしても同じ現象です。
しかも、なぜかこの保存したファイルは、オリジナルファイルより
サイズが増えてしまっているのです。

ダウンロード処理は、たくさんあるサンプルに倣い以下の様に
しています。なにか情報をお持ちの方がいらっしゃいましたら、
よろしくお願いします。

VS2003-C#でWebアプリを開発しています。

private void btnGo_Click(object sender, System.EventArgs e)
{
string FileNameWithPath = @"c:\\\\appa.pdf";
this.Page.Response.ContentType="Application/pdf ";
this.Page.Response.AppendHeader("content-disposition","attachment; filename="
+ System.Web.HttpUtility.UrlEncode(FileNameWithPath));
this.Page.Response.WriteFile(FileNameWithPath);
}


追記:
http://www.bea.hi-ho.ne.jp/byoko/bnewslog19.html
↑ここで、似たような現象についての話題があったのですが、
ASP.Netでの現象と結びつくのかイマイチわからないでいます。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-06-08 20:21
http://homepage3.nifty.com/dotnetfan/web/web12.html
ここで注意書き書いてたりしますが。。。

ダウンロードしたpdfファイルをエディタででも開いてみると、
うまく開ければその最後にaspxから生成されたHTMLが一緒に
くっついているのがわかると思います。
きっとそのせいです。
Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2004-06-09 09:16
Mickyです。
お世話になっております。

小野@どっとねっとふぁんさん、書き込みありがとうございました。
実は、この件で調べている時に、小野さんのお名前をあちこちで
拝見していました(^^;

引用:

小野@どっとねっとふぁんさんの書き込み (2004-06-08 20:21) より:
ここで注意書き書いてたりしますが。。。



ここの会議室でも、Streamの扱いの話題で、Flush()やEnd()についての
書込みがありましたので、もしや?と思い使用してみたのですが、
エラーになってしまったので、他の原因と思い込んでいました。

すると、当該のプログラムはWebコントロールを継承した
独自のコントロール内部で、ボタンのイベントハンドラを記述しており
その中でダウンロード処理をしています。
End()を呼ばなければ問題ないのですが、End()を呼ぶと
「スレッドを中止しようとしました」と言う例外が発生してしまいます。

上記の様な使い方はNGなんですかねぇ?
普通にページに貼り付けたボタンのイベントからは、End()を
加えることで正常に動作しました。
ありがとうございました。継承クラス内でのイベントハンドラに
ついては、もう少し調査してみたいと思います。

1

スキルアップ/キャリアアップ(JOB@IT)