Ошибка загрузки, когда пользователь перетаскивает вложение из почтового клиента

Я использую valums fileuploader, используя jQuery для реализации функции перетаскивания в моем приложении. Функционал работал бесперебойно, пока один из пользователей не попробовал следующее.

Пользователь получил электронное письмо с вложением. Он попытался перетащить вложение прямо из почтового клиента (Outlook) в браузер и в область перетаскивания. Загрузка не удалась. Но когда он сохранил файл в своей файловой системе, а затем перетащил файл, загрузка прошла успешно.

Может кто-нибудь сообщить мне, что происходит в фоновом режиме, когда пользователь перетаскивает вложение прямо из электронной почты? Сохраняет ли он файл во временной папке? Если так, то почему загрузка не удалась?

2 ответа

Решение

Все браузеры ожидают только фактического формата перетаскивания файла (CF_HDROP), но при перетаскивании из Outlook в файловой системе нет файла. То, что вы получаете, это CF_FILEDESCRIPTOR а также CF_FILECONTENTS форматы. Ни один браузер, о котором я знаю (даже IE), не знает, как с этим справиться.

Я нашел бесплатное решение вашей проблемы перетаскивания: 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

но бесплатный работает отлично, и это с открытым исходным кодом!

Перетаскивание FWIW из клиента в браузер теперь работает с Microsoft Edge и Outlook.

Протестировано с Outlook 2016 и Edge 42.17134.1.0

Другие вопросы по тегам