Ваша проблема заключается в следующем: вы пытаетесь загрузить изображение с клиентского компьютера через Javascript. Вы берете значение из <input type="file" />
, а затем сразу же пытаетесь отобразить его. Вы можете сделать это только на локальном хосте с настройками IE по умолчанию. Javascript ограничен в сценарии Интернета; Вы не хотите, чтобы клиентский скрипт обращался к вашей файловой системе и отправлял сообщения на сервер без вашего ведома.
Фактически, строка alert(p);
в функции f()
должна отображать другое значение при работе на вашем компьютере, а не в обслуживании из IIS. Из IIS он не должен отображать полный путь, только имя файла. Как обойти это? Самый простой способ - добавить сайт в список «Надежные сайты» в окне «Свойства обозревателя», но, очевидно, вы не можете заставить своих пользователей делать это.
Я уже сражался в этой битве, и единственное бесшовное решение, которое мне удалось найти, - это загрузить изображение на сервер, а , а затем дать пользователям предварительный просмотр, которым они могут манипулировать.
Новые файловые API-интерфейсы с HTML5 обеспечат все функции, которые вы ищете, но на данный момент поддержка не распространяется.