Почему при просмотре файла .htm в папке Dropbox Android отображаются поврежденные изображения?

У меня есть файл .htm в папке Dropbox со следующим содержимым:

<p>this is a <b>test</b> of html</p>
<img src="test.png"/>

Когда я просматриваю его на своем ПК, он показывает изображение (которое находится в том же каталоге, что и файл htm).

Однако, когда я просматриваю его на своем HTC Wildfire и выбираю в качестве приложения для просмотра «HTMLViewer», он показывает мне правильный HTML-рендеринг (выделен полужирным шрифтом), но показывает мне поврежденное изображение.

Как я могу просматривать HTML-файлы с тегами изображений в папке Dropbox на своем телефоне Android?

Сообщалось о подобных проблемах (хотя ему 1 год). Я предполагаю, что проблема в приложении. Разве ваш браузер Android по умолчанию не открывает файлы HTML?
Действительно ли изображение находится на вашем устройстве? Приложение Dropbox не загружает файлы на ваш телефон автоматически, оно просто перечисляет файлы в вашей учетной записи. Вам нужно открыть файл (или нажать и удерживать кнопку «Загрузить»), чтобы загрузить его на свое устройство. Я проверил это, и пока я сначала загружаю образ, он работает нормально. Если вы включите значки состояния файла в настройках Dropbox, ничего без зеленой галочки на самом деле еще не загружено на ваш телефон.
@eldarerathis, это была хорошая идея, но даже после загрузки изображения на мой телефон html-страница по-прежнему показывает, что она не работает, как будто с путем что-то не так, то есть как будто есть абсолютный путь, странно.
@CustomiZer, когда я удерживаю палец на index.htm, а затем выбираю «Открыть», это дает мне выбор между (1) базой данных текстового редактора, (2) HTMLViewer, (3) базой данных визуализатора HTML. Как мне сказать ему «использовать браузер Android»?
Я провел несколько тестов на разных телефонах и обнаружил, что некоторые из них, как и мой, позволяют открывать htm-файл с помощью браузера по умолчанию (dropbox не установлен), а некоторые предоставляют такие опции, как текст, просмотрщик HTML. Я действительно не могу понять причину проблемы. Попробуйте другую веб-страницу и проверьте, по-прежнему ли вы получаете битые изображения.

Ответы (2)

У меня установлен DropBox на моем Moto DROID v1 (Android OS 2.2.2). Я поместил HTML-файл со ссылкой на изображение в папку DropBox. Изображение было в подпапке.

  • DropBox\Папка\index.html
  • DropBox\Папка\img\image.jpg

Сначала я загрузил только index.html и открыл его в HTMLViewer. Ссылка на изображение битая. Затем я загрузил файл image.jpg, затем вернулся в index.html и просмотрел его в HTMLViewer. Теперь изображение отображается правильно.

Я не уверен, что это как-то связано с этим, но вы можете попробовать изменить расширение файла на .html и убедиться, что тип документа вашего файла установлен правильно:

<!DOCTYPE html>

Приложение Dropbox для Android не сохраняет файлы в «папку», как это делает версия для ПК. Android обеспечивает более надежную защиту и не позволяет приложениям получать доступ к файлам других приложений, поэтому даже если бы это было сделано, браузер не смог бы прочитать изображение.

Когда вы решите открыть файл из списка Dropbox, приложение Dropbox создаст специальный URI, указывающий на этот файл. Он использует намерение запустить действие для просмотра этого URI и устанавливает специальный флаг, указывающий, что новое действие (в данном случае веб-браузер) имеет разрешение на доступ только к этому URI . Это означает, что вы не можете указать путь в файле HTML, который позволит браузеру прочитать изображение: у него есть разрешение Dropbox на чтение только файла, на который вы нажали.

Если вы хотите иметь каталог HTML-файлов и изображений, которые все загружаются в браузер, вам нужно сохранить его на SD-карте (а не в данных одного приложения), где любое приложение может читать и записывать любой файл. Я не верю, что в приложении Dropbox есть функция синхронизации каталогов на SD-карте, но для этого вы можете использовать другое приложение. Например, вы можете использовать FTP-клиент для синхронизации каталога с каталогом на FTP-сервере.

Ответы на этот вопрос содержат множество предложений о том, как синхронизировать каталоги с Dropbox или другим сервером.