Страницы: 1
Прошу помочь. Я хочу сделать кнопку при нажатии на которую сразу вызывался бы диалог открытия файла > путь к выбранному файлу (*.jpg, например) записывался бы в переменную > а далее эта переменная бы использовалась скриптом для отправки этого (*.jpg) на хостинг картинок, например.
Я попробовал использовать функцию BrowserOpenFileWindow(); , но не пойму как из нее получить путь в виде переменной.
Те есть я хочу добиться такой последовательности действий:
1. диалогом выбирается файл,
2. путь пишется в переменную,
3. продолжается выполнение скрипта уже с учетом полученной переменной.
(может мой вопрос окажется тупым, но... понять и простить)
Отсутствует
Вот пример, кнопка с этого форума, но не помню чья. Тут всё есть для этого.. вроде:
var filePicker = Cc['@mozilla.org/filepicker;1'].createInstance(Ci.nsIFilePicker); filePicker.init(window, "Файл", filePicker.modeOpen); filePicker.appendFilters(filePicker.filterImages); if (filePicker.show() == filePicker.returnOK) { var url = filePicker.fileURL.spec; var ext = url.substring(url.lastIndexOf(".") + 1, url.length); var mimeType; var mimeTypes = { png: "png", jpg: "jpeg", ico: "vnd.microsoft.icon", gif: "gif", bmp: "x-bmp" // bla: "bla-bla-bla" } // Вот то что выше ↑↑↑ и нужно походу тебе ;) // Дальше уже идет конвертац-я в base64 и запись в буфер. // --------------------------------------------------------------------------------------- if (ext in mimeTypes) mimeType = "image/" + mimeTypes[ext] else mimeType = ""; var req = new XMLHttpRequest(); req.open("GET", url, true); req.responseType = "blob"; req.onload = function() { var reader = new FileReader(); reader.onload = function() { var result = "data:" + mimeType + ";base64," + btoa(reader.result); gClipboard.write(result); } reader.readAsBinaryString(req.response); } req.send(null); }
Отсутствует
Другой пример:
var fp = window.makeFilePicker(); fp.init( window, "Выберите файл", fp.modeOpen ); fp.appendFilters( fp.filterAll ); if ( fp.show() == fp.returnCancel ) return; alert( fp.file.path );
fp.file.path это путь к файлу, вместо fp.filterAll можно указать нужный тип файла mozilla-central mozilla/toolkit/content/filepicker.properties что бы окошко выбора файла показывал только нужный тип файлов.
Отсутствует
jars и bunda1, спасибо огромное, парни, это то, что надо.
сам то я копал не в том направлении, думал, что смогу через BrowserOpenFileWindow() это сделать...
спасибо ещё раз
Отсутствует
Страницы: 1