input type=file
От: Аноним  
Дата: 15.07.10 17:52
Оценка:
Здравствуйте,
А как можно в HTMLayout программно установить имя файла в input type="file".
set_value не проходит, set_attribute("value",L"c:\test.txt") тоже не проходит...
Заранее спасибо.
Re: input type=file
От: c-smile Канада http://terrainformatica.com
Дата: 15.07.10 19:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте,

А>А как можно в HTMLayout программно установить имя файла в input type="file".
А>set_value не проходит, set_attribute("value",L"c:\test.txt") тоже не проходит...
А>Заранее спасибо.

Традиционно <input type=file > это read-only (программно) элемент ввода. Т.е. только юзер может установить его значение по собственной воле.
Если было бы не так то с любой страницы в web можно было бы прочитать например твой address book. Или еще чего не менее интересное.

А какой сценарий у тебя? Зачем тебе нужно устанавливать file name программно?
Re[2]: input type=file
От: Аноним  
Дата: 15.07.10 19:56
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте,

А>>А как можно в HTMLayout программно установить имя файла в input type="file".
А>>set_value не проходит, set_attribute("value",L"c:\test.txt") тоже не проходит...
А>>Заранее спасибо.

CS>Традиционно <input type=file > это read-only (программно) элемент ввода. Т.е. только юзер может установить его значение по собственной воле.

CS>Если было бы не так то с любой страницы в web можно было бы прочитать например твой address book. Или еще чего не менее интересное.

CS>А какой сценарий у тебя? Зачем тебе нужно устанавливать file name программно?


Ну, например для создания отчета. Пользователю неудобно будет каждый раз выбирать файл — он один и тот же всегда (для заданного отчета, а в программе их может быть несколько, в разных директориях).
Так что хотелось бы задавать начальное значение...
Re[3]: input type=file
От: c-smile Канада http://terrainformatica.com
Дата: 15.07.10 20:56
Оценка:
Здравствуйте, Аноним, Вы писали:

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

А>Так что хотелось бы задавать начальное значение...

А дальше что с этим файлом происходит?

Внутри <form> например <input type=file> пересылает содержимое на сервер.
А как у тебя <input type=file> используется?
Re[4]: input type=file
От: Аноним  
Дата: 15.07.10 21:07
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Аноним, Вы писали:


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

А>>Так что хотелось бы задавать начальное значение...

CS>А дальше что с этим файлом происходит?


CS>Внутри <form> например <input type=file> пересылает содержимое на сервер.

CS>А как у тебя <input type=file> используется?

Да у меня все просто — сохранить содержимое в файл. Никакой отправки на сервер — все локально.

<div #frm_report style="behavior:~bhv_vp_report;">
    <div class="content">                  
         <plaintext .txt name="text_rapport" id="text_rapport">
         Some text....
         </plaintext>    
    </div>
    <div class="footer_repport">        
        File <input name="file_to_save" id="file_to_save" type="file" 
              filter="Report files:*.rep,*.txt;Text files:*.txt;All files:*.*" 
              novalue="(select file)" value="c:\test.txt"/>
        <button name="report_save"   width="50px">Save</button>    
    </div>
  </div>
Re[5]: input type=file
От: c-smile Канада http://terrainformatica.com
Дата: 16.07.10 02:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Да у меня все просто — сохранить содержимое в файл. Никакой отправки на сервер — все локально.


Я могу добавить <input type="file-name" /> — его значением будет имя файла, а не его содержимое.
Соотв. можно разрешить программную установку оного. Пойдет?
Re[6]: input type=file
От: Аноним  
Дата: 16.07.10 13:06
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Я могу добавить <input type="file-name" /> — его значением будет имя файла, а не его содержимое.

CS>Соотв. можно разрешить программную установку оного. Пойдет?

Конечно пойдет! Именно это мне в данном случае и надо. Спасибо.
Re[6]: input type=file
От: DemonS  
Дата: 19.07.10 06:52
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Аноним, Вы писали:


А>>Да у меня все просто — сохранить содержимое в файл. Никакой отправки на сервер — все локально.


CS>Я могу добавить <input type="file-name" /> — его значением будет имя файла, а не его содержимое.

CS>Соотв. можно разрешить программную установку оного. Пойдет?

Добрый день!
Я сам столкнулся с подобногй задачей несколько дней назад.
Решение — "<input type="file-name" />" для имени файла подойдет идеально.
Хотелось бы еще решение вида "<input type="dir-name" />" для выбора директории (именно это понадобилось мне).
Я вышел из положения созданием "буттона", при нажатии на который открывался стандартный виндовый "GetOpenFileName(&ofn)"
а выбранный путь записывался в "едит".
Что-то вроде:


void OnSelectPath( void )
{
    // выбрать каталог
    char    path[MAX_PATH];
    OPENFILENAME    ofn;
    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    ofn.lStructSize        = sizeof(OPENFILENAME);
    ofn.hwndOwner        = m_hWnd;
    ofn.lpstrFilter        = "Swf-files\0*.swf\0All files\0*.*\0\0";
    ofn.nFilterIndex    = 1;
    ofn.lpstrFile        = path;
    ofn.nMaxFile        = MAX_PATH;
    ofn.lpstrInitialDir    = mSetValues.GetFullResPath();
    ofn.lpstrTitle        = "Выберите файл *.swf";
    ofn.Flags            = OFN_ENABLESIZING | OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_NODEREFERENCELINKS | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;
    if (GetOpenFileName(&ofn))
    {
        std::string        temp;
        // выделяем только каталог
        temp.append(ofn.lpstrFile, ofn.nFileOffset - 1);
        htmlayout::dom::element    he = mHtmlRoot.find_first("#PathToRes");
        if (he.is_valid())
        {
            json::value        value;
            value = aux::a2w(temp.c_str()).operator const wchar_t*();
            he.set_value(value);
            this->PostMessage(WM_APPLY_PARAMETERS);
        }
    }
}
Re[6]: input type=file
От: Аноним  
Дата: 26.07.10 14:25
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Я могу добавить <input type="file-name" /> — его значением будет имя файла, а не его содержимое.

CS>Соотв. можно разрешить программную установку оного. Пойдет?

Спасибо за "3.3.2.5 24-07-2010 New, behavior:path-select and so <input type="file-path" /> and <input type="folder-path" />, see: path-select".

Tолько или я туплю, или оно уже исчезло в 3.3.2.6
Простой тест:

 <html>
  <head>
    <title></title>
    <style></style>
    <script type="text/tiscript"></script>
  </head>
<body>  
    Choose a file: 
    <input name="testfile" type="file-path" 
           filter="HTML files:*.htm,*.html;Text files:*.txt;All files:*.*" 
           novalue="(select file)"/><br />    
</body>
</html>

то же самое с <input type="folder-path" />
тогда как <input type="file" /> работает

Спасибо.
Re[7]: input type=file
От: c-smile Канада http://terrainformatica.com
Дата: 26.07.10 15:24
Оценка:
Здравствуйте, Аноним, Вы писали:

Забыл добавить в master-css это дело.

На пока добавь себе такие стили:

input[type="file-path"],
widget[type="file-path"],
input[type="folder-path"],
widget[type="folder-path"]
{ 
  style-set: "file-selector"; 
  behavior:path-select;
}

@set file-selector
{
  :root 
  {
    padding:0;
    font:system;
    flow:horizontal;
    width:20em;
    background-repeat:stretch; 
    background-image:url(theme:edit-normal); 
  }
  :root:disabled 
  {
    background-image:url(theme:edit-disabled);       
  }
  :root > caption
  {
    behavior:file-icon;
    width:*;
    padding:4px 4px 4px system-small-icon-width;
    height:*;
    overflow-x: hidden;
    text-overflow:ellipsis;
    foreground-repeat:no-repeat;
    foreground-position: 2px 50%;
  }
  :root:empty > caption
  {
    color:graytext;
  }
  :root:disabled > caption
  {
    color:graytext;
  }
  :root > button
  {
    margin:1px;
    padding:3px 6px;
    width:max-intrinsic;
    height:*;
  }
}
Re[8]: input type=file
От: Аноним  
Дата: 26.07.10 18:22
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, Аноним, Вы писали:


CS>Забыл добавить в master-css это дело.


CS>На пока добавь себе такие стили...


Спасибо, заработало.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.