Javascript 浏览器中的HTML5文件上载功能检测

Javascript 浏览器中的HTML5文件上载功能检测,javascript,ajax,html,Javascript,Ajax,Html,我正在尝试使用HTML5功能上传文件。根据调查,我发现上传文件有3种不同的方式 通过将文件编码为多部分:这是在仅支持文件读取器时完成的 使用XMLHTTP2(AJAX)规范方法发送二进制数据:新方法能够跨线路发送二进制数据 FormData对象:使用方法 现在,对于跨浏览器问题和功能检测,下面的代码片段很简单 if(typeof FileReader == "undefined") 但我不确定如何确定当前浏览器中AJAX的send()方法是否支持方法实现。如何找到它?这里有Object.pro

我正在尝试使用HTML5功能上传文件。根据调查,我发现上传文件有3种不同的方式

  • 通过将文件编码为多部分:这是在仅支持文件读取器时完成的
  • 使用XMLHTTP2(AJAX)规范方法发送二进制数据:新方法能够跨线路发送二进制数据
  • FormData对象:使用方法
  • 现在,对于跨浏览器问题和功能检测,下面的代码片段很简单

    if(typeof FileReader == "undefined")
    
    但我不确定如何确定当前浏览器中AJAX的send()方法是否支持方法实现。如何找到它?这里有Object.property技巧吗?还是别的什么


    谢谢,

    要处理二进制数据,您需要使用WebSocket。这是新计划的一部分。不过,有一个问题。截至2010年12月中旬,由于缓存中毒漏洞,每个主要浏览器都禁用了WebSocket

    我最后一次听说这件事还在继续

    要在通过WebSocket发送文件之前上载文件,您应该使用最新版本的浏览器支持的(据我所知)

    要检查是否支持FileReader,您应该进行如下测试:

    if (FileReader){
      // It's supported
    }
    
    您还可以检查:

    if (window.URL){
      //
    }
    

    另一种选择。

    从阅读规范来看,在我看来,如果文件阅读器的类型为!='“未定义”,但这纯粹是推测上述内容似乎与文件阅读器有关,对吗?DataTransfer对象处于拖放状态,但是我想知道如何检测发送(文件),我们可以通过某种方式发现AJAX的send()方法是否支持文件对象?如果(FileReader)在Safari中抛出错误。但这在“如果(window.FileReader)”中起作用