2011-07-07 345 views
4

ボタンのクリックイベントまたは[リンク]ボタンをクリックすると、共有ドキュメントライブラリからドキュメントをダウンロードし、それをユーザーのローカルディスクに保存します。プログラムによってSharepointドキュメントライブラリからファイルをダウンロードする方法

Plzを私はLinkBut​​tonコントロールを作成し、プログラムでドキュメントのURLにURLを設定したいあなたが任意のコードサンプルを持っている場合は、

答えて

4

ファイルへの直接リンクを出力する際の問題は、一部のコンテンツタイプではブラウザウィンドウでただ開くことができるということです。これが目的の結果ではなく、ファイルダイアログを強制的に保存したい場合は、クエリ文字列を介してファイル名を渡すことができるASP/PHPページを作成する必要があります。このページは、ファイルを読み取り、レスポンスにいくつかのヘッダーを設定して、コンテンツの配置が添付ファイルであることを示します。 ASP.netのために

、あなたは、あなたがこのように、このページを呼び出すことにより、ファイルをダウンロードすることができますどこかのサーバー上でこのファイルを入れ、その中に以下のコードを追加し、download.aspxと呼ばれる簡単なaspxページを作成する場合:

http://yourserveraddress/download.aspx?path=http://yoursharepointserver/pathtodoclibrary/file.ext

protected void Page_Load(object sender, EventArgs e) 
    { 
     string path = ""; 
     string fileName = ""; 

     path = Request.QueryString["path"]; 
     if (path != null && path.Length > 0) 
     { 
      int lastIndex = path.LastIndexOf("/"); 
      fileName = path.Substring(lastIndex + 1, (path.Length - lastIndex - 1)); 

      byte[] data; 
      data = GetDataFromURL(path); 

      Response.Clear(); 
      Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName); 
      Response.BinaryWrite(data); 
      Response.Flush(); 
     } 
    } 


    protected byte[] GetDataFromURL(string url) 
    { 
     WebRequest request = WebRequest.Create(url); 
     byte[] result; 
     byte[] buffer = new byte[4096]; 

     //uncomment this line if you need to be authenticated to get to the files on SP 
     //request.Credentials = new NetworkCredential("username", "password", "domain"); 

     using (WebResponse response = request.GetResponse()) 
     { 
      using (Stream responseStream = response.GetResponseStream()) 
      { 
       using (MemoryStream ms = new MemoryStream()) 
       { 
        int count = 0; 
        do 
        { 
         count = responseStream.Read(buffer, 0, buffer.Length); 
         ms.Write(buffer, 0, count); 
        } while (count != 0); 
        result = ms.ToArray(); 
       } 
      } 
     } 
     return result; 
    } 
0

を共有してください、この上で私を助けて。

+0

はい、私はドキュメントIDを渡すと、ドキュメントのID取得URLを使用していますクリックしthis..onリンクボタンをしようとしています。おかげさまで :) – Rushikesh

関連する問題