Идея: у вас есть скрытое изображение и изображение. Вы используете изображение для отображения диалогового окна выбора файла. Затем я показываю изображение на холсте.Хром: событие click click с jQuery (оно работает с Firefox)
<input id="ytfile-select" type="hidden" value="" name="Foto[image]" />
<input style="display:none" id="file-select" accept="image/*"
name="Foto[image]" type="file" />
<img id="upload-image" src="/images/design/upload-image.png"
alt="upload-image-button" />
<canvas id="canvas">
Sorry, your browser doesn't support the <canvas> element.
</canvas>
$('#upload-image').click(function(){
$('#file-select').click();
});
$('#file-select').bind('change',function(){
var fileList = this.files;
var img = document.createElement("img");
img.classList.add("obj");
img.src = window.URL.createObjectURL(fileList[0]);
var ctx = document.getElementById('canvas').getContext("2d");
ctx.drawImage(img,0,0);
});
В Firefox 10 ctx.drawImage(img,0,0);
работает только тогда, когда у меня есть Firebug отладчик над-точку останова на этой линии. Без точки останова это не сработает. Я проверил его на другом чистом профиле.
В Chrome $('#file-select').click();
не открывается диалоговое окно файла.
Edit: этот вопрос уже ответил. Однако я понятия не имею, что такое проблема с Firefox. Есть идеи?
Я использовал эти сайты, чтобы создать этот код:
- https://developer.mozilla.org/en/using_files_from_web_applications
- http://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/
Редактировать 2: Я решил проблему с Firefox, делая это: Позади линия var fileList = this.files;
, я положил:
reader = new FileReader();
reader.onload = function (event) {
$('#display').append('<img src ="' + event.target.result + '">');
};
reader.readAsDataURL(fileList[0]);
Констатируя очевидное, но ваш скрипт внутри ''
попробуйте this code на jsfiddle. Я не могу вспомнить, где я копирую этот плагин.
код плагина
использование
источник
2012-02-23 16:24:03 komelgman
Спасибо. Что делает этот код? Отображает ли это только диалоговое окно файла или отображает изображение? Я попробовал, но изображение не было показано на firefox и chrome. – Jakub
hm .. этот код показать изображение и скрытый ввод файла под изображение ... попробуйте установить другое изображение url – komelgman
Я вижу изображение, когда я нажимаю на него, я получаю диалог с файлом. – Jakub