Насколько я знаю, то, что я здесь спрашиваю, невозможно, но я все равно хотел спросить, если что-то упущу.
Предположим, вы хотите разрешить пользователям загружать изображения JPG, и эти изображения масштабируются в меньшие значки, а исходные изображения всегда отбрасываются и больше не требуются. Есть ли способ, который обычно работает в большинстве современных браузеров, который позволил бы пользователю выбрать одно изображение на жестком диске, превратить ЛОКАЛЬНО в миниатюру и загрузить созданный эскиз на сервер?
В случае, когда серверу просто нужно маленькое изображение, было бы расточительно потратить как пользовательское время, так и ресурсы сервера, чтобы продолжить загрузку всего изображения, только чтобы сразу же отказаться от него. Было бы гораздо лучше просто масштабировать его на клиенте.
Я могу представить три варианта. Просто обычный HTML / Javascript, используя Flash или Java. Если бы это было возможно с Flash, это казалось бы лучшим вариантом. Но, читая документацию по flash.net.FileReference, кажется, что вы можете загрузить файл с HD, но вы не можете заглянуть внутрь файла, который вы загружаете. С другой стороны, если вы включите «доступ к локальным файлам» в параметрах публикации Flash, то, по-видимому, вы больше не сможете получить доступ к сети, так что это не сработает.
С помощью HTML / Javascript можно загружать изображения и отображать их на <canvas>
, но если вы попытаетесь получить доступ к пикселям этих изображений, вы получите нарушения безопасности, так что, похоже, это не сработает.
Java Я не решаюсь использовать, потому что только 96,52% моих пользователей установили его, и диалоги загрузки файлов, которые я видел реализованными на Java (например, в Facebook), не работали должным образом (интерфейс без ответа). Интересно, если только Java - это единственное, что позволяет изменять размеры изображений с локального HD?