Я бы предложил смесь:
Эта великолепная библиотека для перетаскивания файлов:
http://valums.com/ajax-upload/
Этот код JavaScript для предварительного просмотра загруженных изображений перед их загрузкой.
Как загрузить изображение для предварительного просмотра перед загрузкой через JavaScript
Вам необходимо добавить прослушиватель в загрузчике Valum, чтобы получить загружаемый файл, а затем отобразить его, используя код во второй ссылке.
Получить локальный путь к изображению с помощью javascript - непростая задача ... и сделать это при поддержке большинства браузеров будет еще хуже ...
Более простым способом решения вашей проблемы было бы загрузить изображение во временную папку на вашем сервере, вернуть этот временный путь и отобразить только что загруженное изображение. Затем вы добавляете вторую кнопку «Сохранить» и кнопку «Отменить», которая сохраняет загруженное изображение в реальный путь, если пользователю нравится то, что он загрузил, и вы удаляете временное изображение. Поскольку ваши изображения имеют формат .ico, я предполагаю, что они не очень большие файлы, поэтому они будут загружаться довольно быстро, и пользователь также получит быстрый «предварительный просмотр», используя эту технику.
Вы должны спросить себя, все ли время, потраченное на настройку кода, чтобы показать пользователю предварительный просмотр перед загрузкой, действительно улучшает работу пользователя с вашим инструментом!