Необычная проблема с изображением HTML и указанным src ‘file: //’

#html #image

#HTML #изображение

Вопрос:

Я загружаю изображение на страницу с ‘file:///some_dir/image.jpg ‘путь src. Я могу получить доступ к изображению на обычной вкладке, используя этот путь. Кроме того, сохранение страницы как HTML и использование этого пути для изображения работает. Однако изображение не загружается на текущую страницу. В Chrome отображается часть текста alt, а в firefox — узкая полоса. Я пытался изменить ширину и высоту, но безрезультатно. Я чего-то не понимаю?

 <img title="Click to enlarge" src="file:///Users/Aram/uploads/profile.image.985b0f707d972bf3.4372696242656464696e67616e645465657468696e67437269625261696c436f7665722e6a7067.jpg" class="profile-image">
  

Редактировать:

Я заметил, что получаю это в консоли:

Не разрешено загружать локальный ресурс

Есть ли какой-либо способ обойти это?

РЕДАКТИРОВАТЬ 2:

Поскольку я не смог получить доступ к изображению через http-путь, я решил прочитать его как данные base64. Для всех, кто использует web2py или другой фреймворк Python:

 # Load the image data
import os
path = os.path.join(request.folder, 'uploads', filename)
data_uri = open(path, 'rb').read().encode('base64').replace('n', '')
data = 'data:image/png;base64,%s' % data_uri
return html.IMG( _src=data, _class='profile-image', _title='Click to enlarge' )
  

Ответ №1:

Веб-сайтам не разрешается использовать локальные файлы на компьютере пользователя. Используйте относительный путь к каталогу html-файла.

Вы также можете кодировать и вставлять изображение напрямую:

Как внедрить закодированный материал: http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html Инструкции по кодированию Python: http://www.daniweb.com/software-development/python/code/216635

Комментарии:

1. Это то, что я понял, но если я не могу использовать http-путь к этому изображению из-за среды web2py, которую я использую, какие еще варианты у меня есть?

Ответ №2:

Проблема в том, что вы пытаетесь загрузить файл непосредственно с клиентского компьютера. Браузеры предотвращают это.

Вы можете прочитать о точных деталях здесь:

http://en.wikipedia.org/wiki/Same_origin_policy

Это называется политикой происхождения. Это предотвращает прямую загрузку файлов вредоносными сайтами с клиентского компьютера. Попробуйте использовать относительный путь со своей страницы для отображения изображения.

В некоторых ситуациях (редко) Я использовал легкий веб-сервер для размещения сайта, чтобы я мог загружать файлы с сервера (в отличие от того, чтобы он загружался с того, что видит браузер, как клиентский компьютер).

Комментарии:

1. плохая ссылка, все, что она может сказать по этому вопросу, это то, что: она плохо определена» и даже тогда я не совсем уверен, что речь идет об изображениях. Действительно, изображения могут быть включены из других доменов, так что это не имеет особого значения.