Jquery 当用户从电子邮件客户端拖放附件时,上载失败

Jquery 当用户从电子邮件客户端拖放附件时,上载失败,jquery,outlook,valums-file-uploader,Jquery,Outlook,Valums File Uploader,我正在使用ValumsFileUploader使用jQuery在我的应用程序中实现拖放功能。在其中一个用户尝试以下操作之前,该功能一直平稳运行 用户收到了一封带有附件的电子邮件。他试图将附件直接从电子邮件客户端(Outlook)拖放到浏览器和拖放区域。上载失败。但当他将文件保存到文件系统中,然后拖放文件时,上传成功 有人能告诉我,当用户直接从电子邮件中拖动附件时,后台会发生什么情况吗?它是否将文件保存在临时位置?如果是这样,那么为什么上载失败?所有浏览器都只需要实际的文件拖放格式(CF\u HD

我正在使用ValumsFileUploader使用jQuery在我的应用程序中实现拖放功能。在其中一个用户尝试以下操作之前,该功能一直平稳运行

用户收到了一封带有附件的电子邮件。他试图将附件直接从电子邮件客户端(Outlook)拖放到浏览器和拖放区域。上载失败。但当他将文件保存到文件系统中,然后拖放文件时,上传成功


有人能告诉我,当用户直接从电子邮件中拖动附件时,后台会发生什么情况吗?它是否将文件保存在临时位置?如果是这样,那么为什么上载失败?

所有浏览器都只需要实际的文件拖放格式(
CF\u HDROP
),但从Outlook拖动时,文件系统上没有文件。您得到的是
CF\u文件描述符
CF\u文件内容
格式。据我所知,没有一个浏览器(甚至IE)知道如何处理这个问题。

我找到了一个解决您拖放问题的免费解决方案:

网址:

当您尝试从Outlook拖放时,Outlook会正确地将格式标识为虚拟文件(CFSTR_FILEDESCRIPTORW),因为这些文件不直接存在于磁盘上。相反,它们包含在PST文件、OST文件或Exchange服务器上

但是,许多应用程序不支持,例如web浏览器和大多数.NET/Java应用程序

为了解决这个问题,Outlook文件拖动钩住了Outlook拖放过程,并添加了对物理文件的支持(CF_HDROP)。当应用程序请求物理文件时,这些文件将保存到临时文件夹中

我看了看

但是免费的一个很好用,而且是开源的


2020年6月更新:Chrome和Edge现在可以与最新的Outlook交互,FireFox仍然有一个开放的接口:

FWIW从客户端拖动到浏览器现在可以与Microsoft Edge和Outlook一起使用


通过Outlook 2016和Edge 42.17134.1.0测试,IE漏洞如下:商业工具可用于覆盖Outlook行为并向浏览器文件API提供CF_HDROP。欢迎提供指向解决方案的链接,但请确保您的答案在没有该解决方案的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么会出现,然后引用你链接到的页面最相关的部分,以防目标页面不可用。我真是太兴奋了,我找到了一个有效的解决方案。确认。Outlook 2010和Edge 44.17763.1.0