如何让用户选择一个文件夹?

时间:2016-01-04 12:10:38

标签: c# asp.net path directory

我想保存类似于Google Chrome操作系统的文件夹路径:

enter image description here

我希望用户能够选择一个文件夹,然后该路径将保存到数据库中。我只是在我的本地机器上这样做。我已经找到了很多关于如何将图像保存到文件夹的示例,但我需要获取文件夹的路径。基本上像图像,我需要创建一个按钮,允许用户从他们的机器中选择一个文件夹。我需要保存此文件夹路径。问题是如何实际选择文件夹路径并将其显示在文本框中?

2 个答案:

答案 0 :(得分:1)

这会帮助你开始我猜;

<div class="row">
    <label for="files" class="col-md-2">Select files : </label><input type="file" multiple class="control-label col-md-10" name="files">
</div>

您可以通过添加输入字段,更多标签等来改进布局。如果您需要更多,可以使用jquery进一步改进。

答案 1 :(得分:-1)

出于安全原因,您无法访问用户上传到您的应用程序的文件存储在其客户端计算机中的文件夹。因此,您可能需要将此上载的文件存储在Web服务器的某个文件夹中,然后将此文件夹存储在数据库中。

为了获取服务器上某个文件夹的物理位置,您可以使用MapPath方法和相对位置:

string physicalLocation = Server.MapPath("~/App_Data/");

然后将其与文件名结合起来:

string filename = Path.Combine(physicalLocation, "someFile.png");

现在您可以将文件名位置存储在数据库中。

更新:

不幸的是,没有这样的标准HTML控件允许您在客户端计算机上选择文件夹。您可以获得的最接近的是标准ASP.NET文本框,用户只需键入此文件夹:

<asp:TextBox runat="server" ID="SomeFolder" />

现在,在服务器端,您可以访问此文本框的内容并存储在数据库中:

protected void SomeButtonClick(object sender, EventArgs e)
{
    string folder = SomeFolder.Text;
    // store the folder that the user typed in your database
}