【问题标题】:File browser control to replace <input type="file">文件浏览器控件替换 <input type="file">
【发布时间】:2011-02-02 01:43:57
【问题描述】:

我正在为我们的公司 Intranet 用户开发一个 ASP.NET Web 应用程序。我有一个表单,用户应该在不上传实际文件的情况下提供本地网络上文件的路径(类似于“\localServer\someFolder\someFile.ext”)。问题是用户不想输入整个文件路径,而是想使用某种视觉浏览对话框。

标准的 HTML 元素允许浏览文件,但是大多数浏览器(除了 IE)不允许访问文件的完整路径,所以我认为应该由一些外部来完成Silverlight、Flash、Java 小程序等组件。

我尝试使用 Silverlight 执行此操作,但尝试使用 Silverlight 的 OpenFileDialog 类访问文件的完整路径时遇到 SecurityException。

这个 java applet http://jumploader.com/demo_images.html 似乎做了一些类似于我正在寻找的事情,但它专注于上传文件 - 我只需要能够获取文件的完整路径并将其作为字符串传递给服务器。

任何建议将不胜感激。

【问题讨论】:

  • 我们说的是客户端的个人机器,还是服务器?我想你说的是客户端的机器?
  • 是的,你是对的——我说的是浏览客户端机器可用的本地网络上的文件。这里的假设是服务器将在同一个网络上并且也能够获取文件(或者如果不能,它将返回错误)。或者,如果我可以使用一些控件来向客户端浏览器内的服务器公开可用的本地网络,这也对我有用(在我的情况下可能是更好的解决方案)。

标签: asp.net html silverlight activex applet


【解决方案1】:

Telerik ASP.NET AJAX RadFileExplorer 具有您正在寻找的功能: http://www.telerik.com/products/aspnet-ajax/fileexplorer.aspx

您可以使用他们的自定义文件内容提供程序将 GUI 连接到服务器的文件系统。 http://demos.telerik.com/aspnet-ajax/fileexplorer/examples/server-sideapi/dbfilebrowsercontentprovider/defaultcs.aspx

【讨论】:

    【解决方案2】:

    这应该可以通过 Flash 的上传功能实现。 SWFUpload 有一个 API,您可以从 JavaScript 访问它来提取选定的文件名,而无需实际上传任何内容。参见文档here,例如getFile()

    getFile 用于从队列中检索文件对象。通过传入文件 id(来自文件对象的 id 属性)或文件索引(来自文件对象的索引属性)检索的文件。

    【讨论】:

    • 我需要做同样的事情。不幸的是,SWFUpload 方法 getFile() 返回一个具有“名称”属性的文件对象。他们的文档说.. “name : string, // 文件名。不包括路径。”
    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2011-01-09
    相关资源
    最近更新 更多