オンライン ファイル ライブラリを使用しているクライアントがいます。彼女は、フォーム ライブラリの一部のファイルを "読み取り専用" にできるようにしたいと考えています。
現在、ファイル ライブラリ ページを表示すると、すべてのファイルが表示されます。
ファイルをクリックすると、標準のブラウザ ウィンドウが開き、ファイルを開くかダウンロードするかを尋ねられます。基本的に、彼女はいくつかのファイルを制限して、ファイルを開くことだけを許可し、ファイルをダウンロードしないようにしたいと考えています。
これは一種のユーザー設定のブラウザー設定タイプのものであるため、これは不可能だと確信していますが、彼女に知らせる前に何らかの入力を得ると思いました.
現在、私が作成したファイル ハンドラーと呼ばれる asp.net HTTP ハンドラーを使用しています。
public void ProcessRequest(HttpContext context)
{
if (this.FileName != null)
{
string path = String.Concat(ConfigurationManager.UploadsDirectory, this.FileName);
string contentType = Utility.IO.File.GetContentType(this.FileName);
if (File.Exists(path) == true)
{
context.Response.Buffer = true;
context.Response.Clear();
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = contentType;
context.Response.AddHeader("content-disposition", String.Format("inline; filename={0}", (Url.Encode(this.DisplayFileName))));
context.Response.TransmitFile(path);
context.Response.Flush();
context.Response.End();
}
else
{
throw new HttpException(404, "File Not Found");
}
}
}
この関数 (Utility.IO.File.GetContentType) は、ファイルの拡張子に基づいてコンテンツ タイプを取得するために使用する単純なユーティリティ関数です。
とにかく、ファイルが読み取り専用または「表示専用」になるように、このコードを変更できるものはありますか。たぶん、私が追加できるヘッダーのタイプでしょうか?