#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. плохая ссылка, все, что она может сказать по этому вопросу, это то, что: она плохо определена» и даже тогда я не совсем уверен, что речь идет об изображениях. Действительно, изображения могут быть включены из других доменов, так что это не имеет особого значения.