4

userA がファイルをアップロードすると、そのファイルは folderA にアップロードされ、userB の場合は folderB にアップロードされます。ASP.NET のロール/プロファイル。フォルダは既存のものになります。誰?

4

4 に答える 4

5

あなたはおそらくそれを手作業でコーディングしたいと思うでしょう。ユーザー ファイルを管理するための ASP.NET 固有のものはありません。ただし、そのためのコードは比較的簡単なはずです。ユーザー名が一意であり、変更されないと仮定すると、ユーザー名をパスと組み合わせて (Path.Combine を使用)、その場所にアップロードできます。また、その場所をロックして、他の誰もアクセスできないようにします。

于 2008-09-24T04:55:29.047 に答える
3

私が過去に行った方法は、ベースアップロードフォルダー(アップロードなど)を使用し、そのフォルダーにDBからのユーザーIDを使用してフォルダーを作成することです。したがって、ユーザー ID が 145 のユーザーの構造は ..\uploads\145 になります。

私のコードが最初に行うことは、フォルダーが存在するかどうかを確認し、存在しない場合は Directory.Create() (または構文が何であれ) を呼び出して、アップロードする前にフォルダーを作成することです。

役立つと思われる詳細情報: GUID を使用してファイルの名前を変更し、同じ名前の 2 つのファイルをアップロードした場合に名前の競合を回避します。欠点は、通常、元のファイル名と物理 (GUID) ファイル名を含むテーブルを維持する必要があることです。

于 2008-09-24T05:11:47.543 に答える
0

これを行うにはいくつかの方法があります。

フォーム認証の使用

フォーム認証を使用する場合、ユーザーのユーザー名または ID が、ユーザーがファイルをアップロードできるサーバー内のパスの基礎として機能する規則を設定できます。ユーザーはそのフォルダーに直接アクセスできないことに注意してください。ユーザーは、Web アプリケーションを介してサーバーからファイルをダウンロードすることもできます。

Windows 認証の使用

Windows (ActiveDirectory など) 認証を使用すると、フォルダーの物理的な場所と Web アプリケーション経由の両方へのユーザー アクセスを提供できます。

PS - ここでマロンに会えてうれしいです!

于 2008-09-24T05:01:45.850 に答える
0

フォルダーの存在を確認し、存在しない場合はユーザー用に作成できますが、これにはセキュリティ上の影響があります。また、データベースにデータを保存してユーザーに関連付けることもできます。これは、ユーザーに何をアップロードさせるかによって異なります。

于 2008-09-24T04:56:07.737 に答える