Autor Zpráva
Hasič
Profil
Ahoj, můžete mi prosím někdo poradit ?
Snažím se poslat soubor na server pomocí aspSmartUpload. To v pohodě funguje, ale problém je v okamžiku kdy má soubor v názvu české znaky. Soubor se uloží, ale český znaky v názvu jsou zkomolený. Na stránce index.htm mám charset UTF-8 a k výběru souboru používám klasický textbox typu="file". Vybraný soubor zapisuju do divu filenames, kam se název souboru zapíše v pohodě česky.
 
<input type="file" name="files[]" id="filUp" multiple  />
<div class="filenames"></div>
Scriptem zachytávám událost .change textboxu a jméno souboru zapisuju do DIVu, AJAXem si potom pošlu soubor aběščřžýáíéúů.txt k odeslání do upload.asp
$(function () {
        $('input:file').change(function () {
            for (var i = 0 ; i <= this.files.length ; i++) {
                var filename = this.files[i].name;
                $('.filenames').append('<div class="name">' + filename + '</div>');
                var fd = new FormData();
                var files = $('#filUp')[0].files[0];
                fd.append('file', files);

                formdata = encodeURIComponent(fd)
                $.ajax({
                  url: 'upload.asp',
                  type: 'post',
                  data: fd,
                  contentType: false,
                  processData: false,
                  dataType: 'json',
                });
               
            }
        });
    });
Soubor v pohodě pošlu na server do adresáře "doc", ale tady skončí s názvem: abÄ›A!Ä?A™A3A1A!A­A©AoA—.txt (prohlížeč to tady trochu už upravil, ale v podstatě tp takle nějak vypadá)
Dim mySmartUpload
   Dim intCount
   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
   mySmartUpload.Upload
   iniCount = mySmartUpload.save( "doc" )

Zkoušel jsem nastavovat AJAXu různý charsety v contentType, ale nic nepomohlo. Nevíte někdo co s tím ?

Díky za pomoc.


Hasič:
To je fakt neskutečný. Už se mi stalo po několikátý, že v okamžiku kdy napíšu problém do nějaký diskuze tak najdu řešení asi tak do půl hodiny a to je také tento případ.
Takže pokud máte někdo stejný problém, řešením je nastavení kódové stránky aplikaci aspSmartUpload:

mySmartUpload.CodePage = "UTF-8"

A je hotovo.
nethor
Profil
:-) Mě se to stává také a velice často. Říkám tomu "Stačí se zeptat."
Myslím, že je to tím, že formulování otázky člověku pomůže podívat se na problém 'z druhé strany'.

Přeji zdar.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0