0

プログラムでオンラインのSharepointファイルを開くのに助けが必要です. これらのファイルは、Sharepoint で保護する必要がありますが (ユーザーが侵入できないようにするため)、Web パーツを使用して何らかの方法でアクセスする必要もあります (セキュリティをチェックします)。通常、Sharepoint ファイルにリンクするハイパーリンクを使用できますが、これらのハイパーリンクを他のユーザーに共有してほしくないため、これは機能しません。

ユーザーにリンクをクリックしてもらい、そのファイルの [開く、保存、閉じる] ダイアログ メニューを表示してもらいます。

私はこれを試しました

            String fileName = @"file.txt";
            String filePath = @"~online filePath/"; 

            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.ClearHeaders();
            response.ClearContent();
            response.Clear();
            response.ContentType = "text/plain"; 
            //or whatever file type, I can code that later
            response.AddHeader("Content-Disposition", "attachment; Filename=" + fileName + ";");
            response.TransmitFile(filePath + fileName);
            //response.Flush();
            response.End();

残念ながら、これはローカル ファイル (C://...) では正常に機能しますが、Web ファイルでこれを試してみると、現在のページのソース コードを含むテキスト ドキュメントしか受信しません。理由がわからない。

アクセス許可の処理に関しては、昇格した特権を使用して、プログラムがファイルにアクセスできるようにする予定です。

助けていただければ幸いです、ありがとう。

4

1 に答える 1

0

SharePoint でダウンロードするファイルを提供するサンプル コードを次に示します。

using (SPWeb web = SPContext.Current.Web)
{
    //Get fileName and filePath here
    response.AddHeader("Content-disposition", "attachment; filename=" + fileName);
    response.ContentType = "application/octet-stream";
    SPFile file = web.GetFile(filePath);
    byte[] fileBytes = file.OpenBinary();
    response.OutputStream.Write(fileBytes, 0, fileBytes.Length);
    response.End();
}

これは役に立ちますか、それとも fileName と filePath を見つけるのに問題がありますか?

于 2013-03-07T21:48:21.020 に答える