|
|
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
Всем привет. Сделал скачивание файла как в примере, который дает оракл ( http://download.oracle.com/docs/cd/E14373_01/appdev.32/e13363/up_dn_files.htm#CJAHDJDA - Create Download Page for Embedded PL/SQL Gateway). Имя файла храниться в базе на русском языке в кодировке utf-8, страница также в кодировке utf-8. Но при клике на скачать файл, браузер в окне выбора куда сохранять почему-то отображает название в непонятной кодировке, например, название "Название таблиц.doc" отображается как "!_740=85 B01;8F.doc". Ктонить сталкивался с этим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2010, 02:20 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
0. Firefox 1. Для FF следуя ссылке должно работать Код такой create or replace PROCEDURE "DOWNLOAD_COMPETITOR_FILE" (p_file in number) AS v_mime VARCHAR2(400); v_length NUMBER; v_file_name VARCHAR2(2000); Lob_loc BLOB; BEGIN SELECT d.COMPETITOR_file_mimetype, d.COMPETITOR_file_file, d.COMPETITOR_file_filename ,DBMS_LOB.GETLENGTH(d.COMPETITOR_file_file) INTO v_mime,lob_loc,v_file_name,v_length FROM COMPETITOR_file d WHERE d.COMPETITOR_file_id = p_file; -- -- set up HTTP header -- -- use an NVL around the mime type and -- if it is a null set it to application/octect -- application/octect may launch a download window from windows owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE ); -- set the size so the browser knows how much to download htp.p('Content-length: ' || v_length); -- the filename will be used by the browser if the users does a save as htp.p('Content-Disposition: attachment; filename="'||replace(replace(substr(v_file_name,instr(v_file_name,'/')+1),chr(10),null),chr(13),null)|| '"'); -- close the headers owa_util.http_header_close; -- download the BLOB wpg_docload.download_file( Lob_loc ); end download_COMPETITOR_file; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2010, 03:43 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
electrod, какая локаль операционной системы клиента (где запущен браузер)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2010, 17:00 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
non-apexoid, Русская ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2010, 17:19 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
electrod, конкретно какая? Юникод, cp1251. etc... Можете просто ответить - у меня Windows, вариантов сразу станет меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2010, 10:03 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
non-apexoid, База и апекс - UTF-8 и энтерпрайз линукс, FF - в винде, но в FF стоит тоже UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2010, 14:02 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
Система Apex 4.0.2 + oc4j + Apex Listener 1.0.2 Процедура для скачивания файла некорректно возвращает имя файла в русской транслитерации под всеми браузерами. То же приложение под EPG отрабатывает правильно. Пробовал по всякому pl/sql convert-ом преобразовывать имя файла в процедуре -безрезультатно. Кто-нибудь сталкивался с этим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2011, 10:18 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
Я тоже столкнулся с такой проблемой. Мне кажется проблема в сервере приложений (у меня glassfish). Пробовал делать в через HTTP сервер, все ok. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2011, 15:51 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
ArtMan, Не уверен, что дело исключительно в веб-сервере: к примеру APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT выдает у меня под oc4j стандартный диалог для скачивания файла с русскими буквами, а вот WPG_DOCLOAD.download_file кириллицу уже не показывает. Я выкрутился переводом русских названий в латинскую транслитерацию, но это не решение проблемы, а ее обход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2011, 09:37 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
haXbat, я решил проблему таким образом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 16:08 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
dvksqlru, Спасибо, помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 09:26 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
Вот и я наткнулся на грабли, только с функцией APEX_UTIL.GET_FILE (4.1, этот функционал я так понимаю еще и в других местах используется). Ковыряния дали, что для FF и опера, он конвертирует имя файла в UTF8, после к заголовку применяет UTL_ENCODE.BASE64_ENCODE, которая возвращает символы перевода строки, на чем заголовки и ломаются. пример 2 строкиContent-Disposition: attachment; filename="=?utf-8?B?0J4g0L3QsNC/0YDQsNCy0LvQtdC90LjQuCDQsiDQutC+0LzQsNC90LTQuNGA0L7Q stC60YMuZG9j?=" Полагаю, это можно считать apex bug. Пока что, сделал так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:05 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
Выше не оттуда скопировал = Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2012, 15:54 |
|
||
|
Русские имена в файлах
|
|||
|---|---|---|---|
|
#18+
Вот так работает Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 20:44 |
|
||
|
|

start [/forum/topic.php?fid=50&tid=1875503]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
20ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 368ms |

| 0 / 0 |
