Я пишу расширение, которое идеально читало бы файлы после их загрузки (через обычный процесс загрузки). Это возможно? Я могу получить имя файла через операции chrome.downloads, но я не могу найти способы чтения фактических байтов. Мне не нужно писать или перемещать их, просто читать.Доступ к файлам данных после загрузки в Chrome ...?
ответ
Я столкнулся с одной и той же проблемой и, наконец, нашел легкое обходное решение для чтения содержимого загруженных файлов с расширения Chrome.
Вам просто нужно добавить разрешение file://*
в вашем файле манифеста и как только вы путь вашего файла в системе (с chrome.downloads.search
в filename
собственности), сделать GET XMLHttpRequest к URL file://{filepath}
.
Умм, я пробовал это в firefox, и он, похоже, не работает. Код просто сжимается, как только я делаю 'xhr.open (« GET »,« file: /// Users/myuser/Downloads/myexistingfile », false)'. Он отлично работает, когда URL-адрес удален, поэтому звонок правильный. Можете ли вы перечислить массив 'permissions'? Возможно, FF является более ограничительным, чем Chrome ... –
Nevermind, это потому, что локальные файлы не имеют таких же событий, как удаленные. Присоединившись к 'onreadystatechange', все работает так, как ожидалось. Большой! –
.. или нет. Я все еще не могу прочитать фактические данные после завершения запроса, ответ всегда пуст в firefox. Неудовлетворительно. –
Нет, API загрузки не предоставляет способ доступа к содержимому файла.
Ближайшим для перехвата является API WebRequest, но в настоящий момент это также doesn't allow response access.
Больше всего вы можете сделать, это поймать запрос webRequest
, отменить его и попробовать XHR самостоятельно, сохранив результат в некотором временном месте, таком как упомянутый API файловой системы. Это был бы ужасный UX, хотя (исходный запрос обрывается необъяснимо) и может не работать во всех случаях (поскольку XHR не может установить все заголовки для полной репликации запроса).
Если я инициировал загрузку самостоятельно с помощью отдельного явного действия с помощью XHR (т. Е. Щелкнуть правой кнопкой мыши-> «загрузить с помощью MyExtension»), могу ли я затем предложить пользователю сохранить его в стандартной папке загрузки? –
После этого вы могли бы вызывать 'chrome.downloads.download' – Xan
- 1. Доступ к файлам cookie в Chrome Extension
- 2. Доступ к файлам cookie из приложения chrome
- 3. Rails: доступ к файлам изображений после их загрузки
- 4. Не удается получить доступ к файлам изображений после загрузки SpringMVC
- 5. ограниченный доступ к файлам
- 6. доступ к файлам после установки setup.py
- 7. Доступ к внутренним файлам после сборки - Cordova
- 8. Доступ к файлам данных до и после distutils/setuptools
- 9. Равномерный доступ к файлам
- 10. Доступ к нескольким файлам
- 11. Доступ к файлам данных из пакета python
- 12. Общий доступ к файлам для конфиденциальных данных
- 13. Доступ к файлам Java
- 14. Доступ к файлам SimpleButton
- 15. Корневой доступ к файлам
- 16. Доступ к файлам трека
- 17. Одновременный доступ к файлам
- 18. Доступ к файлам разрешений
- 19. Ограниченный доступ к файлам
- 20. Доступ к zip-файлам
- 21. Общий доступ к файлам
- 22. Доступ к внешним файлам
- 23. Доступ к файлам для Android
- 24. Доступ к файлам доступа к файлам laravel запрещен apache
- 25. Доступ к файлам в Rails
- 26. доступ к файлам в python
- 27. Доступ к файлам в EJB
- 28. Доступ к файлам данных ввода файла в IE8 на клиенте?
- 29. доступ к локальным файлам с помощью расширения Google Chrome
- 30. Как получить доступ к существующим файлам cookie с помощью Chrome?
В идеале вы не сможете прочитать ни один файл из файловой системы. Это будет нарушение безопасности. Если файл загружается/хранится во временной файловой системе, используемой HTML5, тогда это возможно. – user3613129
@ user3613129 Как вы думаете, я мог бы как-то перехватить загрузку, чтобы управлять ею с помощью fs api? –
Я так не думаю. Опять же, если ваше расширение сможет перехватить загрузку пользователя, это также будет нарушением безопасности. FS API имеет другой вариант использования. Он используется для записи/чтения в/из локальной файловой системы, где локальная файловая система означает временный защищенный путь, созданный браузером для этих операций. Просьба ознакомиться с API FS для получения дополнительной информации. – user3613129