• 締切済み

ASP:動的に作成したPDFをアシュクしてダウンロード後の展開

ASP(VB)にて動的に作成したPDF(stream)をZIPへ格納後、ダウンロードのプログラムを組んだのですが、ZIPの中を展開するとPDFが 「ファイルの種類がサポートされていないか、または破損している可能性があります。例えば電子文書として送信され、正しくデコードされなかったことなどが考えられます。」 と表示されて開けません。 バイト数・圧縮率は正しく表示されているのですが何かソースとしてエンコード/デコード方法が足りてないのでしょうか? ご教授お願いします。 以下ソースです。( Ionic.Zip.dll使用) Dim teststream As Stream Dim streamRE As StreamReader = New StreamReader("C:\test2.txt") teststream = streamRE.BaseStream Response.Clear() Response.ContentType = "application/zip" Response.AddHeader("content-disposition", "filename=data.zip") Dim zip As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile(Encoding.GetEncoding("shift_jis")) Using (zip) zip.AddEntry("データ1.pdf", "", teststream) 'ダウンロード出力 zip.Save(Response.OutputStream) End Using

みんなの回答

noname#259269
noname#259269
回答No.1

ありがちですが Response.End() をつけるとか? 外してたらごめんなさい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ASP(VB)にて動的に作成したPDF(stream)をZIPへ格納後の展開ができない

    ASP(VB)にて動的に作成したPDF(stream)をZIPへ格納後、ダウンロードのプログラムを組んだのですが、ダウンロード後にZIPの中を展開するとPDFが 「ファイルの種類がサポートされていないか、または破損している可能性があります。例えば電子文書として送信され、正しくデコードされなかったことなどが考えられます。」 と表示されて開けません。 バイト数・圧縮率は正しく表示されているのですが何かソースとしてエンコード/デコード方法が足りてないのでしょうか? ご教授お願いします。 以下ソースです。( Ionic.Zip.dll使用) Dim teststream As Stream Dim streamRE As StreamReader = New StreamReader(\"C:\\test2.txt\") teststream = streamRE.BaseStream Response.Clear() Response.ContentType = \"application/zip\" Response.AddHeader(\"content-disposition\", \"filename=data.zip\") Dim zip As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile(Encoding.GetEncoding(\"shift_jis\")) Using (zip) zip.AddEntry(\"データ1.pdf\", \"\", teststream) \'ダウンロード出力 zip.Save(Response.OutputStream) End Using

  • DBからPDFを取得して別画面で表示したい

    あるページにリンクが貼り付けてあります。 このリンクをクリックすると、 DB(SQL Server)からPDFファイルを取得し 別画面で表示するようにしたいと思っています。 ソースは下記のように書きました。 画面側(XXX.asp) <a href="../common/AAAAA.asp" target="_blank"><img src="images/banner.jpg" border="0" /></a> 呼び出され側(AAAAA.asp) Dim st Dim imgdata Dim rs Dim strSQL Dim column strSQL = "SELECT ファイル " strSQL = strSQL & "FROM 画像 " strSQL = strSQL & "WHERE ファイル名 = 'ファイル名' " 'レコードセット Set rs = querySql( conn, strSQL )     imgdata = rs.fields("ファイル").value Response.ContentType = "application/pdf" Call Response.AddHeader("Content-Transfer-Encoding", "binary") Call Response.AddHeader("Cache-Control", "no-cache") Call Response.AddHeader("Pragma", "no-cache") Call Response.BinaryWrite(imgdata) このようにすると画面には表示されるのですが IE7で表示したときのタブの部分は どうやったら指定できるのでしょうか? 「PDFファイル」と表示させたいです。 よろしくお願いします。

  • FDF ToolkitでASPからPDFダウンロード

    FDF Toolkitを使用して、ASPからPDFをダウンロードさせようとしています。 ※DBから取得した値をPDFで表示&ダウンロード 環境はWindowsです。 テンプレート用FDFは不要としたいです。 ↓こちらを参考にして作ってみました。 ※http://www.linkclub.or.jp/~ma3ki/webutil/pdf/ringi2/howtomake-pdf2.html#ji 下記ソースは、リンクまたはボタンをクリックした時に呼ばれるASPファイル内のソースです。 ▼やりたい事 リンクまたはボタンクリックしたら、 DBから値を取得し、その値を埋め込んだxxxxx.pdfを開くダイアログを表示させる。 ダイアログの選択で、「開く」か、pdfファイルを「保存」するかを選択させたい。 ⇒開いたPDFをちゃんと表示させたい ⇒保存したPDFファイルもきちんと表示させたい ※FDFファイルは使わない形式でPDFを出力させたいのです。 ▼下記ソースがだめな点 ・ダイアログは表示されるのですが、「保存」を選択した場合に保存されたPDFが開けません。 ・「開く」を選択しても何も開かず固まってしまいます。 ・テンプレート用のPDFは用意しています。 ・サーバーには「FdfAcx.DLL」と「FdfTk.DLL」はインストール済みです。 全く見当違いな事をしているかもしれませんが、 いろいろ調べてみても全くわからないのです、、 どなたか同じ現象を体験した方、 また、解決方法をご存知の方がいらっしゃいましたら 何卒ご教授くださいませ。 よろしくお願いいたします。 【ASPソース】============================================================= Dim ObjFdfAcx Dim ObjresFDF Dim StrDateTime '現在日付取得 StrDateTime = Now() StrDateTime = Replace(StrDateTime, " ", "") StrDateTime = Replace(StrDateTime, "/", "") StrDateTime = Replace(StrDateTime, ":", "") 'ダウンロードファイル名設定 StrPDFFileName = "TEST_" & StrDateTime & ".pdf" 'FDF ActiveX オブジェクトの定義 Set ObjFdfAcx = Server.CreateObject("FdfApp.FdfApp") '新しいFDF生成 Set ObjresFDF = ObjFdfAcx.FDFCreate 'テンプレートFDF内の変数(/V key)に値を設定 With ObjresFDF '値セット .FDFSetValue "TEST1","TEST1",False .FDFSetValue "TEST2","TEST2",False 'テンプレートPDFのURLセット .FDFSetFile "http://XXXXX/テンプレート用PDF.pdf" End With '設定結果のFDFをファイル名を付けてクライアントでダウンロード With Response .ContentType = "application/vnd.fdf" 'MIMEタイプ FDF '.ContentType = "application/pdf" 'ダウンロード '.AddHeader "Content-Disposition","attachment; filename=" & StrPDFFileName '表示 .BinaryWrite ObjresFDF.FDFSaveToBuf End With 'クローズ ObjresFDF.FDFClose 'オブジェクト開放 Set ObjresFDF = Nothing Set ObjFdfAcx = Nothing

  • ASPでExcelファイルのダウンロード

    はじめて質問します。 よろしくお願いいたします。 さて、現在ASPでDBから取得したデータをExcelでダウンロードする機能を実装しています。 ダウンロード自体は問題なくできています。 #ソース Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition","attachment; filename=sample.xls" Response.Write "項目1" & vbTab & "項目2" Response.End #ここまで この状態ですと、「sample」というSheetのA列とB列にそれぞれ、項目1と項目2が入っているExcelファイルがダウンロードできます。 ここからが質問で、今回シートを4枚設けたいと考えています。現状では「ファイル名」のSheetが一枚できるだけなので、複数のSheetにそれぞれデータを書き込む方法をご存知の方はいらっしゃらないでしょうか? なお、Excelのライブラリを使用しない方法がベストと考えています。 以上、長々となりましたが、よろしくご教示ください。

  • ASP.Net 全角文字コード

    大変お世話になっております。 現在、ObjectDataSource のデータをCSVファイルにしたいと思い、まずは固定データをテストとしまして下記のプログラムを書きました。(ほとんど受け売りです^^;)   Protected Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click     Dim csvStr As String     csvStr = "1,AAA,これはテスト" + vbCrLf _      + "2,BBB,これもテスト"     Response.ContentType = "application/octet-stream"     'Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("CSVファイル.csv"))     Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("CSVファイル.csv"))     Response.Write(csvStr)     Response.End()   End Sub HttpUtility.UrlEncode と Server.UrlEncode 両方でファイルを出力しました。 メモ帳で開くと何も問題なく開けるのですが、Excelで直接開くと、3項目目の全角文字がバケてしまいます。Excelの外部データの取り込みで、Csvファイルを選択していく方法だと問題ないのですが、これだと面倒なので、 CSVファイルをダブルクリック → Excelで開く → ふつうにデータを表示させたい 上記を行うためには、どのような文字コードで出力させればよいでしょうか? 上記プログラムでご指摘の箇所やご教授をいただけますと大変うれしい限りでございます。 何卒よろしくお願い申し上げます。

  • ウェブ内容をshift-jis変換するには?

    続けての質問になってしまいます。 VB.NET で、ウェブクライアントで下記のようにウェブページの内容を取得しましたが、 コードがUTF?のため日本語で表示されません。 内容を変数に格納し、shift-jis変換するにはどのように記述すればよいのでしょうか? Dim webClient As New System.Net.WebClient Dim sr As System.IO.Stream = webClient.OpenRead("http://www.nikkei.co.jp/") Dim srRead As New System.IO.StreamReader(sr) TextBox1.Text = srRead.ReadToEnd  よろしくお願いします。

  • HTTP接続すると文字化けがおこってしまいます

    VB2005です。 HTTPサーバーに接続してデータをテキストボックスに書き出す処理なのですが、どうしても文字化けしてしまい困っています。どうしたらよいでしょうか? Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' HTTPサーバーへ接続する Dim client As New WebClient Try ' HTTPサーバーへ接続しストリームを取得する Dim stream As System.IO.Stream = _ client.OpenRead(TextBox1.Text) ' テキストボックスへ結果を書き出す Dim reader As New System.IO.StreamReader(stream) TextBox2.Text = reader.ReadToEnd() reader.Close() stream.Close() Catch ex As WebException ' URLが不正の場合は例外が発生する MessageBox.Show(ex.Message) End Try End Sub

  • VB6.0にてStreamReaderを使用したいのですが、

    VB6.0にてStreamReaderを使用したいのですが、 Dim Reader As New IO.StreamReader("C:\Windows\System32\eula.txt", のコードが赤字でエラーになります。 どう修正すればよろしいでしょうか? ご存知の方教えてください。よろしくお願いします。 Dim strTemp As String Dim Reader As New IO.StreamReader("C:\Windows\System32\eula.txt", System.Text.Encoding.GetEncoding("Shift-JIS")) strTemp = Reader.ReadToEnd msgobox strTemp Reader.Close

  • ASP.NET OleDbConnectionが定義がされていません

    ACCESS2003 で 以下のサンプルを実行すると OleDbConnectionが定義がされていません。 というエラーが発生していて対処方法をしらべ てもわかりませんでした。 何方かご教授ください。よろしくお願いいたします。 Public Sub InsertRow(ByVal connectionString As String, _ ByVal insertSQL As String) Using connection As New OleDbConnection(connectionString) Dim command As New OleDbCommand(insertSQL) command.Connection = connection Try connection.Open() command.ExecuteNonQuery() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub 以下のOleDbConnectionオブジェクトの作成は行いました。 http://www.atmarkit.co.jp/fdotnet/aspexp/aspexp03/aspexp03_01.html

  • ファイルのダウンロード

    こんにちは CSVファイルをダウンロードさせるページを作成 しています。 しかし、ファイル名がaspファイルになってしまいます。 いろいろ調べてみたのですが、原因がつかめなかったので解決策を教えて下さい。 ソースは下記の通りです。 ================================ <% @Language="VBScript" %> <HTML> <HEAD> <TITLE>CSV出力</TITLE> </HEAD> <BODY> <% 'CSV出力 Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition","attachment; filename=test.csv" Response.write Session.Contents("USER_NO") & "," Response.write Session.Contents("SS_BUCD") & "," Response.writeline Session.Abandon Response.End %> 【メッセージを記入予定】 </BODY> </HTML> ================================ HTMLが含まれているのが問題なのでしょうか? しかし、HTMLを取り除いても現象が変わりませんでした。 よろしくお願い致します。