JQueryを使用してvalumsfileuploaderを使用して、アプリケーションにドラッグアンドドロップ機能を実装しています。ユーザーの1人が次のことを試すまで、機能はスムーズに実行されていました。
ユーザーは添付ファイル付きの電子メールを受信しました。彼は、添付ファイルを電子メールクライアント(Outlook)からブラウザとドロップ領域に直接ドラッグアンドドロップしようとしました。アップロードに失敗しました。しかし、彼がファイルをファイルシステムに保存してから、ファイルをドラッグアンドドロップすると、アップロードは成功しました。
ユーザーが電子メールから直接添付ファイルをドラッグすると、バックグラウンドで何が起こるかを誰かに教えてもらえますか?ファイルを一時的な場所に保存しますか?もしそうなら、なぜアップロードが失敗するのですか?
すべてのブラウザは、実際のファイルのドラッグアンドドロップ形式(CF_HDROP
)ただし、Outlookからドラッグすると、ファイルシステムにファイルがありません。あなたが得るものはCF_FILEDESCRIPTOR
およびCF_FILECONTENTS
フォーマット。私が知っているブラウザはありません(IEでさえ)、それを処理する方法を知っています。
ドラッグアンドドロップの問題に対する無料の解決策を見つけました: https://tonyfederer.github.io/OutlookFileDrag/
ウェブサイトから:
Outlookからドラッグアンドドロップしようとすると、ファイルがディスク上に直接存在しないため、Outlookは形式を仮想ファイル(CFSTR_FILEDESCRIPTORW)として正しく識別します。代わりに、PSTファイル、OSTファイル、またはExchangeサーバーに含まれています。
ただし、Webブロワーやほとんどの.NET/Javaアプリケーションなど、多くのアプリケーションはサポートしていません。
この問題を回避するために、OutlookファイルドラッグはOutlookのドラッグアンドドロッププロセスをフックし、物理ファイル(CF_HDROP)のサポートを追加します。アプリケーションが物理ファイルを要求すると、ファイルは一時フォルダーに保存されます。
https://Outlook2web.com/ と https://www.wilutions.info/ddaddin-download.html を見ました
しかし、無料のものは問題なく動作し、オープンソースです!
クライアントからブラウザへのFWIWドラッグは、MicrosoftEdgeおよびOutlookで機能するようになりました。
Outlook2016およびEdge42.17134.1.0でテスト済み