PDA

Просмотр полной версии : Предпросмотр картинки перед загрузкой (Opera vs IE)


Sinker
11.03.2005, 16:07
Поиск юзал, ничего похожего не нашел, хотя помню, что с год назад задавал тут похожий вопрос...

Есть <form... , в ней <input type=file...
Человек выбирает файл на своем компе, после этого по onclick или onchange (в зависимости от браузера) нужно отобразить эту картинку (если это картинка).
Понял как это сделать в IE, почти всегда работает в Mozilla, но вот чтобы это заработало в Opera.... Помогите, PLZ.
Сейчас это выглядит вот так:

my_image_src=document.forms["f"].elements["fileid"].value;
if (isMozilla)
{
//Mozilla
my_image_src = my_image_src.replace(/\\/g, '/');
my_image_src = my_image_src.replace(/:/, '|');
my_image_src = "file:///" + my_image_src;
my_image[id].src=my_image_src;
}
else if (isOpera)
{
//opera
my_image_src = my_image_src.replace(/\\/g, '/');
my_image_src = "file://localhost/" + my_image_src;
my_image[id].src=my_image_src;
}
else
{
//IE
my_image_src = unescape(my_image_src);
my_image_src = my_image_src.replace(/\+/g, '%20');
my_image[id].src=my_image_src;
}

Самое интересное, что если посмотреть свойства этой картинки, то урл будет иметь вид file://localhost/d:/foto/002.jpg. Так вот если открыть в опере новое окно и вставить туда этот урл, то картинка откроется нормально. После перехода в первое окно - картинка будет показана и там. Т.е. я так понимаю, что описанный код срабатывает, когда картинка уже есть в кеше оперы... Поправьте меня, PLZ.

Sensey
12.03.2005, 16:37
зачем такие извращения ? что, человек на своем же харде не может посмотреть картинку?

делайте все проще....

Sinker
13.03.2005, 14:35
Ты можешь мне не верить, но есть люди, которые не могут сделать даже этого...
А насчет первого вопроса - Для удобства! Когда человек заливает на сервер несколько фотографий (мой случай), ему _удобно_ видеть что на них изображено, а не просто их название (а часто только его часть)...

ЗЫ. Прошу в студию только ответы по делу, а не "-зачем тебе BMW? Купи запорожец, он тоже ездит (вариант: ходи пешком)"...

AleXXXSoft
14.03.2005, 08:51
никакого локалхоста там не надо.... смысл совсем другой... у меня работает просто путь, даже без всяких file://

Sinker
14.03.2005, 11:22
Хм... А пример можно?

ЗЫ. Сам спросил - сам ответил
http://my.opera.com/forums/showthread.php?threadid=74683&highlight=local+image

AleXXXSoft
14.03.2005, 11:25
ну вот в 5-ке и 6-ке это работало :) а теперь там написано, что не будет работать из-за безопасности... :) и вообще, пользователей оперы не так много, чтобы на них ориентироваться... а те, кто и пользуются этим дерьмом, врядли не умеют картинки на своем винчестере глядеть :)

saintex
19.09.2005, 02:49
Не страдайте фигнёй :beer: