Запрет на сохранение изображения
Добрый день!
Прошу совета у специалиста! У меня на сайте стоят небольшие изображения small.jpg, при клике на которых открывается окно с большим изображением - large.jpg: <A title="увеличить?" onClick="window.open ('img/large.jpg', 'image','toolbar=no, menubar=no, resizable=no, scrollbars=no, '); return false;" href=""><IMG src="img/small.jpg" oncontextmenu="return false" /></A> Тут стоит запрет на правый клик по small.jpg. Как теперь запретить сохранение или правый клик на large.jpg? Спасибо всем кто ответит! |
Всем этим вы будете только раздражать пользователей, а тот, кто захочет сохранить изображение -- сохранит его.
|
Невозможно не дать сохранить изображение, так как раз оно уже отобразилось - оно есть на моём компьютере... Просто надо вытащить его из кэша, или отскриншотить, или просто посмотреть в коде ссылку на него и открыть данную ссылку в новой вкладке и т.д.
|
Я знаю, но у меня там тысяча картинок, которые есть смысл сохранять только все вместе, как коллекцию, а не некоторые из них. А сохранять все через Printscreen никто не будет, т.к. это очень долго.
|
Тогда простенький парсер на ПХП, котрый выдирает со страницы все ссылки на картинки и сохраняет всем скопом...
|
ну это Вы знаете как это делать, но простой пользователь не знает.
|
Ну так простому пользователю и нафиг не нужны картинки. Запрет на копирование нужен для тех, кто хочет скопировать, а кто хочет - тот найдёт, кто ему поможет :)
|
Цитата:
ZoNT,+1 на любом фри-ланс ресурсе ходят толпы толковых, но безрейтинговых новичков, готовых сделать такую работу за отзыв.потому что это элементарно делается в большинстве случаев |
Ну вот, попросил у людей помощи в решении простого, на мой взгляд, вопроса,.. а мне все объясняют, что мне это не нужно. Если б не нужно, я бы не спрашивал... Неужели жалко поделиться знаниями? Или вы сами не можете решить эту задачу и сейчас меня отговариваете?
|
Цитата:
|
Это понятно, что так можно, но придётся тогда для каждой фотки делать страницу, а их у меня тысяча. Да и в хостинг наверное потом не влезет...
|
get-параметром передавать имя файла и вставлять его в нужное место.
Вопрос нескромный: картинки-то свои, сам фоткал? |
нет не фоткал, но собирал в кучу полгода, интерес на скачивание может проявить только неспециалист, поэтому и вопрос...
А Вы не могли бы изменить код, который я написал в начале темы так чтоб получилось то, о чём я говорю? |
Wow@, тебе уже сказали, чтобы реализовать твою идею надо либо создавать под каждое изображение отдельный html-файл, что не особо разумно
либо создать один html-файл, который будет отображать все полноразмерные изображения и получать имя файла с изображением через параметры запроса вот функция для получения параметра по имени (http://www.netlobo.com/url_query_string_javascript.html) p.s. web-страницы рассчитаны на открытый доступ к информации, поэтому попытки запретить такой доступ либо невозможны, либо их можно обойти |
Цитата:
|
Цитата:
|
ага, я просто запущу http-трейсер и просто распарсю его лог и по нему скриптом выкачаю все картинки... Делов-то... Никак тебе флэш не поможет...
|
x-yuri,
раньше в таких случаях хорошо помогала дискетка. Скидываем на дискетку файлы, которые нельзя скачивать, и кладем ее в сейф. Сейф на ключ, ключ проглотить. С развитием технологий появилась возможность использовать более емкие носители, как то: флешка или cd. |
так я ж и говорю, надо какую-нибудь защиту от скачивания изображений с сервера изобрести))) например, посылать с запросом на картинку какой-нибудь заголовок, если это возможно, с идентификатором флеш-ролика (каждый раз при вставке флеш ролика на страницу ему будет назначаться уникальный идентификатор). По индентификатору сервер будет определять какую картинку можно скачать и будет ограничивать такое скачивание одним разом))))
|
Цитата:
|
Цитата:
Цитата:
|
сложность взлома меньше сложности защиты.
|
Цитата:
|
Цитата:
а во вторых если вы боитесь что на хостинге может не хватить мегабайт жесткого пространства, то этот хостинг вам не подходит |
Цитата:
А если взлом много дешевле защиты, то это вообще баловство. |
Цитата:
|
Цитата:
|
Еще как вариант, поверх изображения создавать div с шириной и высотой изображения, и задать ему прозрачность например 0.01. Но это как уже говорили не панацея, зато Вам не придется заморачиваться с упомянутыми правыми клавишами :)
|
Zibba,
Зачем прозрачность? Установки visibility: hidden будет достаточно. |
Ну или так, просто если например установить цвет div белым или черным и прозрачность задать, то человек уже сможет просмотреть картинку не в оригинале, а чуть более темную например или светлую и т.д.. Т.е. она уже будет не в оригинальных цветах, что может защитить ее от метода воровства при помощи принтскрина :) . Либо качество картинки полученное таким способом будет заведомо не оригинальным. Но тут уже на усмотрение автора, чего он конкретно хочет добиться.
|
Можно придумать несколько фишек, навскидку
1. Поверх изображения наложить прозрачный див - тогда меню будет вызываться для дива а не изображения 2. Вставить изображение через Canvas используя JS |
Цитата:
|
Цитата:
http://olejek777.narod.ru/ |
Цитата:
|
Олег,
Canvas можно сохранить, как обычное изображение в формате png. |
А тогда если кликнуть на "Сохранить страничку" то в папке с файлами страницы не будет сохраненное фото. А сверху канвы див, тогда без копания в исходном коде страницы не вытянишь рисунок :-(
|
что то вроде такого, только с размеры надо подправить и добавить прозрачный див
<html> <OBJECT ID="DAControl" CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D" STYLE='WIDTH:100px;HEIGHT:100px;'></OBJECT> <canvas id='cr' width='200px' height='200px' style='-moz-opacity:0.3;'/> <script> window.onload = function () { if ('\v'=='v') { //DAControll.Stop(); tc mDAStatics = DAControl.PixelLibrary; myOval1= mDAStatics.ImportImage("i.JPG"); DAControl.Image = myOval1; DAControl.Start(); } else { cu = document.getElementById('cr'); var c = new Image(100,100); c.src = 'i.JPG'; var ct = cu.getContext('2d'); ct.drawImage(c,0,0,60,60,0,0,60,60); } } </script> </html> |
if ('\v'=='v') это типа проверка на IE? А не лучше ли проверять наличие метода getContext и если его нету - вставлять object? Или проверять поддержку canvas другим методом? |
Часовой пояс GMT +3, время: 01:12. |