2016-06-26 7 views
0

からPDFファイルを保存する方法:MVC - 要求し、私は3つの部分があるAPIプログラミングする必要があるURL

  1. は、PDFのURLからpdfファイルを取得します。
  2. pdfを変換する。
  3. 変換されたPDFファイルを返します。

私はすでに私のMVCのWeb APIにダウンロード/ URLおよびコピーからPDFをフェッチすることでどのような左、 をパート2と3を完了しました。

これはテスト用のHTMLコードです:

<script> 
 
    $('#btnSendRequest').on('click', function() { 
 
    $.ajax({ 
 
     type: "POST", 
 
     url: "/Convertor/Html", 
 
     data: { 
 
     strUrl: "http://make-sense.co.il/kb/avcp-script-installation.pdf" 
 
     }, 
 
     success: function(data) { 
 
     return true; 
 
     }, 
 
    }); 
 
    }); < /script>
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
 
    <title>tester</title> 
 
</head> 
 

 
<body> 
 
    <h1>tester html</h1> 
 
    <div> 
 
    <input id="btnSendRequest" type="button" value="SendHttpRequest" /> 
 

 
    </div>

私のActionResult機能: "コンバータ/ HTML" は、WebページからURL文字列を取得します。 ボタンをクリックすると、pdfファイルが自動的にサーバーにダウンロードされます。

public ActionResult Html(string strUrl) 
    { 
     return View(); 
    } 

どのようにすればいいですか? 私はまた、解決策かもしれないbase64エンコーディングと呼ばれるものを読んだことがあります。

ありがとうございます。

+0

はhttp://stackoverflow.com/questions/4545311/download-a-file-by-jquery-ajax – haim770

答えて

2

.NET上のWebClientは、次の例を参照してください。完全な記事はhereを参照してください。

using System; 
using System.Net; 
using System.IO; 

class Program 
{ 
    static void Main() 
    { 
    using (WebClient client = new WebClient()) 
    { 

     // Download data. 
     byte[] arr = client.DownloadData("http://url-to-your-pdf-file.com/file1"); 

     File.WriteAllBytes(path_to_your_app_data_folder, arr) 

    } 
    } 
} 

バイト[]をファイルのどこかに保存することで、さらに処理する必要があります。上のサンプルコードはコンソールアプリケーション用ですが、あなたのmvcコントローラでも同様に実装できます。

+0

を参照してくださいしかし、問題は、MVC Webアプリケーションについてですが、あなたのコードスニペットは、デスクトップアプリです何卒ご了承下さい –

+0

私はこのpdfファイルのbase64をstreamを使って得ることを誓った。 このbase64文字列をpdfに変換する必要がありますが、私が理解しようとしているエラーメッセージが表示されます。 – barak

+0

Base64に変換する必要はありません。WebClientでバイナリデータを使用してサーバーにファイルをダウンロードしてください。 – Ahsan

0
  var request = System.Net.WebRequest.Create("http://make-sense.co.il/kb/avcp-script-installation.pdf"); 
      request.Method = "GET"; 

      using (var response = request.GetResponse()) 
      { 
       using (var stream = response.GetResponseStream()) 
       { 
        using (var fileStream = System.IO.File.Create(@"path/to/file")) 
        { 
         stream.CopyTo(fileStream); 
        } 
       } 
      } 
関連する問題