Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№128-01-2016 13:22:48

psihkakihmalo
Участник
 
Группа: Members
Зарегистрирован: 28-01-2016
Сообщений: 31
UA: Firefox 43.0

Как открыть файл и записать путь к нему в переменную

Прошу помочь. Я хочу сделать кнопку при нажатии на которую сразу вызывался бы диалог открытия файла > путь к выбранному файлу (*.jpg, например) записывался бы в переменную > а далее эта переменная бы использовалась скриптом для отправки этого (*.jpg) на хостинг картинок, например.

Я попробовал использовать функцию BrowserOpenFileWindow(); , но не пойму как из нее получить путь в виде переменной.

Те есть я хочу добиться такой последовательности действий:
1. диалогом выбирается файл,
2. путь пишется в переменную,
3. продолжается выполнение скрипта уже с учетом полученной переменной.

(может мой вопрос окажется тупым, но... понять и простить)

Отсутствует

 

№228-01-2016 17:56:44

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Firefox 29.0

Re: Как открыть файл и записать путь к нему в переменную

Вот пример, кнопка с этого форума, но не помню чья. Тут всё есть для этого.. вроде:

скрытый текст

Выделить код

Код:

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);
}

Отсутствует

 

№328-01-2016 19:11:28

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Как открыть файл и записать путь к нему в переменную

Другой пример:

Выделить код

Код:

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 что бы окошко выбора файла показывал только нужный тип файлов.

Отсутствует

 

№428-01-2016 20:13:09

psihkakihmalo
Участник
 
Группа: Members
Зарегистрирован: 28-01-2016
Сообщений: 31
UA: Firefox 43.0

Re: Как открыть файл и записать путь к нему в переменную

jars и bunda1, спасибо огромное, парни, это то, что надо.

сам то я копал не в том направлении, думал, что смогу через BrowserOpenFileWindow() это сделать...

спасибо ещё раз

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]