我有几个解决方案,但没有一个能够完美运行。
平台
允许第三方选项
当前尝试
Gmail样式:您可以使用javascript添加新的上传元素(输入类型='文件'),然后只需点击一下按钮即可立即上传所有内容。这可行,但仍需要大量点击。 (我能够使用不可见的ActiveX控件来检测文件大小等内容,这很有用。)
Flash Uploader :我发现了一些Flash上传控件,它们使用1x1 flash文件作为上传器,可以通过javascript调用。 (一个这样的控制是FancyUpload,另一个是Dojo's Multiple File Uploader,而另一个是darick_c at CodeProject。)这些令我兴奋,但我很快遇到了两个问题:
Java Uploader :我注意到了几个基于Java的多文件上传器,但大多数都看起来要花钱。如果我找到一个效果很好的,我可以安排购买它。我只是不愿意。我也不喜欢他们中的大多数人的样子。我喜欢FancyUpload,因为它与html / javascript进行了交互,因此我可以轻松地按照我想要的方式设置和管理它。
ActiveX上传器:我也找到了an ActiveX solution。似乎ActiveX将起作用。我会写自己的,而不是买那个。我认为这将是我的最后手段。
解决
我希望能够使用像FancyUpload这样的东西。如果我可以通过某种方式获取凭据提示,那将是完美的。但是,根据我的研究,似乎唯一真正的解决方法是无cookie会话,我不能这样做。
所以,问题是:有没有办法解决上面提出的问题,还是有一个我没有列出的不同解决方案可以达到同样的目标?
答案 0 :(得分:2)
我认为集成的Windows身份验证没有任何解决方法。您可以做的是将文件保存到一般的不受保护的文件夹,并且在swfupload的情况下,使用处理程序在完全上载时移动文件
答案 1 :(得分:1)
您也可以尝试SWFUpload - 它适合您的Flash上传器“类别”。
答案 2 :(得分:1)
我们公司使用支持此功能的ajaxuploader.com。
答案 3 :(得分:0)
在Internet Explorer中,FileReference.upload(flash上传)也会发送Cookie。
只有在其他浏览器中运行时,此行为才会中断。
答案 4 :(得分:0)
@davidinbcn.myopenid.co:这基本上就是我解决这个问题的方法。但是,为了提供更详细的答案,我在这里发布我的解决方案。
解决方案!
创建两个Web应用程序或网站,或其他任何内容。
应用程序A 是一个简单的Web应用程序。此应用程序的目的是接收文件上载并将其保存到适当的位置。将其设置为允许的匿名访问。然后创建一个接受发布文件的ASPX页面并将其保存到给定位置。 (我在内联网上这样做。互联网站点可能通过这样做暴露自己的安全问题。如果是这种情况,请采取额外的预防措施。)此页面背后的代码如下所示:
Dim uploads As HttpFileCollection = HttpContext.Current.Request.Files
If uploads.Count > 0 Then
UploadFiles(uploads)
Else
result = "error"
err = "File Not Uploaded"
End If
应用B 是您允许上传文件的主要网站。将其设置为不允许匿名访问的经过身份验证的Web应用程序。然后,将FancyUpload(或类似解决方案)放在此网站的页面上。配置它以将其文件发布到应用程序A的上载ASPX页面。