2016-04-16 10 views
0

私はユーザーがテキストボックスに入力するドロップボックス公開リンクを持っています。ユーザーがリンクをクリックすると、ファイルはサーバー内の場所に転送されます。 Dropboxのフォーラムに尋ねると、Dropbox APIは公開ファイルなので必要ないと述べました。WebClientはURLからサーバーに画像をダウンロードします。C#

https://www.dropbox.com/s/5y100bsknq7swdw/TestDoc.pdf?dl=1

クライアントサイト

<div id="testarea"></div> 
    <div> 
    @Html.TextBoxFor(x => x.HTML_text, new { id = "tbURL" }) 
    <input id="btnSubmit" type="button" value="Submit" onclick="btnSubmitClick()"/> 
    </div> 

    <script> 

     function btnSubmitClick() 
     { 
     $.ajax({ 
     url: "/Home/SaveDocument", 
     datatype: "text", 
     data: { 'returnUrl': $('#tbURL').val() }, 
     type: "POST", 
     success: function (data) { 
      $('#testarea').html(data); 
     }, 
     error: function() { 
      $("#testarea").html("ERROR"); 
     } 
     }); 

     } 
     </script> 

サーバー側

 public string SaveDocument(string returnUrl) 
     { 
      using (var client = new WebClient()) 
      { 
      //Not Working 
       client.DownloadFile(returnUrl, "Test.pdf"); 
      }    
      return String.Format("Test03: String1={0};", returnUrl); 
     } 

答えて

0

DownloadFile方法があれば、あなたが持っていない完全修飾ファイル名を指定して動作します。たとえば、"Test.pdf""C:\\Test.pdf"に置き換えると、ファイルが正しくダウンロードされ、保存されます。もちろん、サーバー側のコードを実行するユーザーコンテキストに、指定されたパスへの書き込み権限があることを確認する必要があります。

ファイルをアプリケーションの仮想ディレクトリに関連するフォルダに書き込む場合は、Server.MapPathメソッドを使用してフォルダパスを取得し、ファイル名を末尾に連結することができます。

関連する問題