2012-02-10 52 views
0

私の現在のプロジェクトでは、ユーザがアップロードしたPDFファイルを開く必要があります。私はaspxページにファイルアップロードコントロールとアップロードボタンを持っています。ユーザーが[アップロード]ボタンをクリックするとすぐに、ファイルを保存して新しいウィンドウで開く必要があります。アップロードしたPDFファイルを新しいブラウザのウィンドウ/タブで開く

私は、この使用して、クライアント側の機能をやってみました:

 <script type="text/javascript"> 
      function openPDF() { 
      alert('The file is open.'); 
      window.open('Open PDF.aspx','PDF'); 
      return true; 
      } 
     </script> 

しかし、「オープンPDF.aspx」ページは空白です。

オープンPDF.aspx.csファイルは次のようになります。

 protected void Page_Load(object sender, EventArgs e) 
     { 
      string fullFileName = Session["fullFileName"].ToString(); 
      WebClient client = new WebClient(); 
      Byte[] buffer = client.DownloadData(fullFileName); 

      if (buffer != null) 
      { 
        Response.ContentType = "application/pdf"; 
        Response.AddHeader("content-length", buffer.Length.ToString()); 
        Response.BinaryWrite(buffer); 
      } 
     } 

ファイル名と一緒に完全なファイルパスは、サーバー側のイベントですBtnUpload_Clickイベントで構成され、クライアント - 後に実行されますサイドファンクション。 "Open PDF.aspx"ページにセッションまたはクエリ文字列として完全なファイルパスを渡すにはどうすればよいですか?

これを達成する他の方法がある場合は、あなたのアイデアを投げてください。ありがとう!!!

答えて

0

次の操作を行うことがあります。

  • 保存サーバー上のどこかにアップロードされたファイルAjaxのポストコール
  • を通じてAJAX呼び出しはそれだけでウィンドウを使用すると
  • をアップロードされたファイルを示すURLを返すことが完了した後。

pdf.aspxでは、ファイルをローカルにロードし、通常は適切なヘッダーを付けてクライアントに送信する必要があります(例:pdf.aspx?id = [some_id_or_name])。

+0

ご返信ありがとうございます。しかし、私はAjaxで働いたことがありません。あなたは私に例を教えてもらえますか? – KhD

+0

jQueryやその他のjavascriptライブラリ、または純粋なjavascriptを使用していますか? –

+0

純粋なjavascriptです。 – KhD

0

evet "Open PDF.aspx"にファイル名を渡すと、 "Open PDF.aspx"を開いた後にアップロード操作が実行されるため、 が機能しません。

あなたはBtnUpload_Clickでサーバにファイルを保存することができます。その後、クライアントスクリプトを登録して保存したファイルを開きます。

関連する問題