【问题标题】:How to allow user to select a folder?如何允许用户选择文件夹?
【发布时间】:2016-04-08 01:09:49
【问题描述】:

我想保存一个类似于谷歌浏览器的文件夹路径:

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

【问题讨论】:

  • 明确地说,您只是想将文本(路径)保存到数据库中?
  • @JᴀʏMᴇᴇ 是的,就像图像一样,我只想保存我选择的文件夹的路径(作为文本)。问题是我不知道如何获取文件夹的路径
  • 向我们展示您已经掌握的有关页面上负责选择文件夹的控件(标记和代码隐藏)。这只是从该输入中检索文本值并将其保存在数据库中的一种情况。 真正的 问题是,您已经有什么可以访问数据/将数据写入数据库?
  • @JᴀʏMᴇᴇ 这就是问题所在。我不知道选择文件夹的代码是什么。
  • 你已经拥有了什么?

标签: c# asp.net path directory


【解决方案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 进一步改进。

【讨论】:

  • @Kosala 我不想选择文件,我想选择文件夹
  • @简短的回答是NO。除非您愿意使用 ActiveX,否则无法完成。以上解决方案可用于选择文件/在浏览器中显示所选图像等。More Info....
  • 好的,如果我要使用 ActiveX,我该怎么做?
  • ActiveX 是一种过时的技术。只有 IE 完全支持它。这是一篇关于how to create an activeX and access it using a javascript 的好文章。如果您了解 vb6(记住这是 90 年代的技术..!!),使用 vb6 创建 ActiveX 会更容易。据我所知,vb6 有一个内置文件夹浏览器。您只需将其放入用户控件中即可制作您自己的 activeX 控件。
【解决方案2】:

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

为了获取服务器上某个文件夹的物理位置,您可以使用带有相对位置的 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
}

【讨论】:

  • 我认为你想多了,没有抓住重点。 OP 似乎只想将文本保存到数据库。
  • 不,他不想在数据库中保存任何文本。他想要的是保存一些文件存储在客户端机器上的文件夹,正如我在回答中已经解释的那样,出于安全原因,这是不可能的。只需阅读他针对您的问题发布的 cmets,您就会明白这一点。
  • 是的,我看了他的评论 :-) 你呢?一旦你更仔细地阅读它,你就会明白你在最初阅读他的问题时有多么错误。
  • @DarinDimitrov 很抱歉对这个问题有任何困惑。我只是想将文件夹的路径存储在数据库中
  • @user123456789,此路径是否在用户选择要上传的文件的客户端计算机上?还是在您的应用程序所在的服务器上?
猜你喜欢
  • 1970-01-01
  • 2011-01-25
  • 2020-11-24
  • 2022-12-15
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
相关资源
最近更新 更多