YUI Uploader问题

  1. YUI Uploader是通过uploader.swf文件将数据发送给服务器,如果uploader.swf存放在非目标服务器(如使用的是yui.yahooapis.com),则需要在接收文件的服务上存放跨域请求文件crossdomain.xml允许yui.yahooapis.com上传文件。
  2. uploader并不会在发送文件的时候附带cookies,如果需要携带cookies需要额外处理,Yahoo给的建议是使用一个无cookies的上载方法来上传文件,不过这样貌似对服务器端要求比较苛刻。
  3. uploader也不支持basic authentication身份验证。
  4. 通过代理上传或者HTTPS上传到服务器都是有问题的。

以上问题都在YUI2.8的开发文档中有说明(Limitations),另外我在使用过程中还发现以下问题:

调用了uplaodAll()以后,在调用cancel()或者removeFile()都会失效。

这个问题很让人纠结,偶迟早会被YUI给搞死。看了uploader.swf的源码后发现,上传以后调用的removeFile和cancel都是无效的,上传列表已经生成了,此时不会重队列中移除文件。

需要说明的是上传文件无法携带cookies并不是YUI Uploader的问题,所有以flash实现的上传组件都有这个问题。问题出在Flash上,Flash在非IE浏览器里存在一个Bug,不能同上传文件一起发送Cookie到服务器。
-EOF-