基本上,比这更好的东西:

<input type="file" name="myfile" size="50">

首先, browse 按钮在每个浏览器上看起来都不同。不像 submit 表单上的按钮,你必须想出一些 黑客-y 的方式来设计它。

其次,没有进度指示器显示文件已上传多少。您通常必须实现某种客户端方法来禁用多次提交(例如将提交按钮更改为禁用按钮,显示“表单正在提交...请稍等。”)或闪烁一个巨大的警告。

有没有不使用 Flash 或 Java 的好的解决方案?

雅科夫:该产品看起来正是我正在寻找的产品,但成本为 1000 美元,而且是专门针对 ASP.NET. 是否有涵盖相同或相似功能的开源项目?

有帮助吗?

解决方案

如果您不想涉及 Flash、Java 或 ActiveX 等其他技术,我们目前就可以使用文件上传框。

使用纯 HTML,您几乎只能获得所描述的体验(没有进度条、双重提交等)。如果你愿意使用一些javascript,你可以通过提供上传正在进行甚至反馈来解决一些问题 显示上传进度 (这是一种黑客行为,因为您不必在服务器之间进行完整的往返,但至少它可以工作)。

如果您愿意使用 Flash(它几乎可以在任何地方和许多平台上使用),您几乎可以克服所有这些问题。快速谷歌搜索出现了 这样的 组件,两者都是免费的 开源。我从未使用过它们中的任何一个,但它们看起来不错。顺便说一句,Flash 也不是没有问题,例如,当使用多文件上传器进行幻灯片共享时,浏览器不断崩溃:-(

目前最好的解决方案可能是动态检测用户是否有 Flash,如果是这样,则为她提供上传器的 Flash 版本,同时仍然可以选择基本的 HTML 版本。

华泰

其他提示

你可以看看 精美上传 脚本。虽然它使用闪光灯,但看起来仍然很棒。

这里的问题是浏览器专门阻止任何更改基本文件上传输入控制的内容。例如,您无法使用 javascript 更改它。

原因是安全性 - 如果我可以编写脚本,我可以构建一个页面,当您访问它时,它会从您的硬盘向我发送各种文件。不太好。

目前有多种解决方法,但它们在 IE 和 FX 之间有所不同(我不知道 Safari、Opera 等)。

看看什么 http://www.gmail.com 当您将某些内容附加到电子邮件时,IE 和 FX 中会执行此操作。

我想看到那个垃圾“浏览”按钮 - 它告诉我我不会让任何意外的东西进来。

确实,文件上传控制绝对落后于时代。希望这个问题能够在未来的 ASP.NET 版本中得到解决。

虽然要花一些钱,但我找到了 Telerik 上传控制 拥有您正在寻找的所有功能,包括样式和进度更新(它还优化了大型上传的内存)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top