2

asp.net のファイル アップロード機能を使用して、ファイルのフル パスを取得しようとしています。Visual Basic 2010 で C# を使用して Web サイト プロジェクトに取り組んでいます。完全なパスが必要な理由は、ファイルを含むフォルダーに関する情報を実際に取得しようとしているためです。サードパーティの比較ツールである UltraCompare を使用してフォルダーを比較し、その比較結果をデータベースに転送します。

理想的には、ユーザーがファイルではなくフォルダーを参照できるようにする機能が欲しいのですが、グーグルで調べた限りでは、これは私が使用しているバージョンである .net 4.0 では不可能です。 .

必要なのはディレクトリのファイルパスだけなので、ファイルアップロードコントロールを使用する必要があるかどうかさえわかりません。ただし、完全なファイル パスを入力するのではなく、GUI ブラウザー ウィンドウを使用してユーザーがファイルを検索できるようにしたいと考えています。

私は明らかに C# .net とプログラミング全般に非常に疎いので、アドバイスや提案をいただければ幸いです。これは、別の場所からコピーして貼り付けたサンプルコードです。コメントの内容は、ファイル パスを取得するためのさまざまな方法を (失敗して) 試しただけです。

if (File1.HasFile)
        {
            try
            {
                //string filepath1 = Path.GetFullPath(File1.PostedFile.FileName);
                string filepath1 = Path.GetFileName(File1.FileName);
                File1.SaveAs(Server.MapPath("~/") + filepath1);
                //StatusLabel.Text = "Upload status: File(s) uploaded!";
                Response.Write("Upload status: File(s) uploaded! <br />");
                Response.Write(filepath1);
            }
            catch (Exception ex)
            {
                StatusLabel.Text = "Upload status: The file(s) could not be uploaded. The following error occured: " + ex.Message;
                //Response.Write("Upload status: The file(s) could not be uploaded. The following error occured: " + ex.Message + "<br />");
            }
4

1 に答える 1

4

html は、元のファイル名以外は何も提供しません。フォルダー パスやプロパティなどの追加情報は、クライアントのセキュリティとプライバシーの侵害になります。必要なデータを取得するには、activex コントロールや adobe flash など、別のものを使用する必要があります。

于 2013-01-24T22:02:26.783 に答える