我有几个解决方案,但没有一个能完美运行。
平台
- ASP.NET/VB.NET/.NET 2.0
- IIS 6
- IE6(主要),部分 IE7;Firefox 不是必需的,但很有用
允许的第 3 方选项
- 闪光
- ActiveX(想避免)
- Java(想避免)
目前的尝试
Gmail 样式:您可以使用 javascript 添加新的上传元素(输入类型='file'),然后单击按钮一次性上传它们。这可行,但仍需要大量点击。(我能够使用不可见的 ActiveX 控件来检测文件大小之类的东西,这很有用。)
Flash Uploader:我发现了几个 Flash Upload 控件,它们使用 1x1 flash 文件作为上传器,可以通过 javascript 调用。(一个这样的控件是FancyUpload,另一个是Dojo 的 Multiple File Uploader,另一个是CodeProject 的 darick_c 的一个。)这些让我很兴奋,但我很快遇到了两个问题:
- Flash 10 将破坏用于调用多文件上传对话框的功能。解决方法是使用透明的闪光框架,或者只是使用闪光按钮来调用对话框。这不是什么大不了的事。
- 当 Flash 文件尝试上传文件时,我们的 Intranet 上使用的集成 Windows 身份验证未使用,提示用户输入凭据。解决方法是使用无 cookie 会话,由于其他几个原因,这对我们的项目来说将是一场噩梦。
Java Uploader:我注意到几个基于 Java 的多文件上传器,但大多数似乎都需要花钱。如果我发现一个非常好用的,我可以安排购买它。我宁愿不要。我也不喜欢他们中的大多数人的样子。我喜欢 FancyUpload,因为它与 html/javascript 交互,因此我可以轻松地以任何我想要的方式设置和管理它。
ActiveX Uploader:我也找到了一个 ActiveX 解决方案。ActiveX 似乎可以工作。我会自己写而不是买那个。这将是我最后的手段,我想。
解析度
我希望能够使用 FancyUpload 之类的东西。如果我能以某种方式获得凭据提示,那将是完美的。但是,根据我的研究,似乎唯一真正的解决方法是无 cookie 会话,这是我做不到的。
所以,问题是:有没有办法解决上面提出的问题,或者有没有我没有列出的不同的解决方案可以实现相同的目标?