>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >Как открыть файл и записать путь к нему в переменную http://forum.mozilla-russia.org/viewtopic.php?id=69213 |
psihkakihmalo > 28-01-2016 13:22:48 |
Прошу помочь. Я хочу сделать кнопку при нажатии на которую сразу вызывался бы диалог открытия файла > путь к выбранному файлу (*.jpg, например) записывался бы в переменную > а далее эта переменная бы использовалась скриптом для отправки этого (*.jpg) на хостинг картинок, например. Я попробовал использовать функцию BrowserOpenFileWindow(); , но не пойму как из нее получить путь в виде переменной. Те есть я хочу добиться такой последовательности действий: (может мой вопрос окажется тупым, но... понять и простить) |
jars > 28-01-2016 17:56:44 |
Вот пример, кнопка с этого форума, но не помню чья. Тут всё есть для этого.. вроде: скрытый текст Выделить код Код: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); } |
bunda1 > 28-01-2016 19:11:28 |
Другой пример: Выделить код Код: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 что бы окошко выбора файла показывал только нужный тип файлов. |
psihkakihmalo > 28-01-2016 20:13:09 |
jars и bunda1, спасибо огромное, парни, это то, что надо. сам то я копал не в том направлении, думал, что смогу через BrowserOpenFileWindow() это сделать... спасибо ещё раз |