Загрузка не выполняется, когда пользователь перетаскивает и удаляет вложение с почтового клиента
Я использую valup fileuploader с помощью jQuery для реализации функций перетаскивания в моем приложении. Функциональность работала плавно, пока один из пользователей не попробовал следующее.
Пользователь получил электронное письмо с приложением. Он попытался перетащить приложение напрямую из почтового клиента (Outlook) в браузер и в область перетаскивания. Загрузка была неудачной. Но когда он сохранил файл в своей файловой системе, а затем перетащил файл, загрузка была успешной.
Может ли кто-нибудь сообщить мне, что происходит в фоновом режиме, когда пользователь перетаскивает приложение напрямую из электронной почты? Сохраняет ли файл в временном расположении? Если да, то почему загрузка не выполняется?
Ответы
Ответ 1
Все браузеры ожидают фактический формат перетаскивания файла (CF_HDROP
), но при перетаскивании из Outlook в файловой системе нет файла. Вы получаете форматы CF_FILEDESCRIPTOR
и CF_FILECONTENTS
. Ни один браузер, о котором я знаю (даже не IE), знает, как с этим справиться.
Ответ 2
Я нашел бесплатное решение вашей проблемы перетаскивания: https://tonyfederer.github.io/OutlookFileDrag/
С веб-сайта:
При попытке перетаскивания из Outlook Outlook правильно определяет формат как виртуальные файлы (CFSTR_FILEDESCRIPTORW), поскольку файлы не существуют непосредственно на диске. Вместо этого они содержатся в PST файле, OST файле или на сервере Exchange.
Однако многие приложения не поддерживают, такие как веб-браузеры и большинство приложений .NET/Java.
Чтобы обойти эту проблему, перетаскивание файлов Outlook перехватывает процесс перетаскивания в Outlook и добавляет поддержку физических файлов (CF_HDROP). Когда приложение запрашивает физические файлы, они сохраняются во временную папку.
Я посмотрел на https://outlook2web.com/ и https://www.wilutions.info/ddaddin-download.html.
но бесплатный работает нормально, и это с открытым исходным кодом!
Ответ 3
Перетаскивание FWIW из клиента в браузер теперь работает с Microsoft Edge и Outlook.
Протестировано с Outlook 2016 и Edge 42.17134.1.0