Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как правильно передать файлы на сервер с русским именем с помощью AJAX
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Как правильно передать файлы на сервер с русским именем с помощью AJAX

Страниц (1): [1]
 

1. zypikov - 28 Мая, 2012 - 02:15:16 - перейти к сообщению
Есть обычная форма с помощью транспорта iFrame отправляет файлы на сервер.
Как правильно передать файлы на сервер с русским именем?
2. DeepVarvar - 28 Мая, 2012 - 03:06:10 - перейти к сообщению
3. zypikov - 28 Мая, 2012 - 14:26:24 - перейти к сообщению
DeepVarvar пишет:
iconv
ну это со стороны сервера.
Нужно ли кодировать на стороне клиента русское имя файла функцией encodeURIComponent?

CODE (html):
скопировать код в буфер обмена
  1. <form action="ajax/upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" >
  2.                      <p id="f1_upload_process">Loading...<br/><img src="cssRules/images/loader.gif" /><br/></p>
  3.                      <p id="f1_upload_form" align="center"><br/>
  4.                          <label>File:
  5.                               <input name="myfile" type="file" size="30" />
  6.                          </label>
  7.                          <label>
  8.                              <input type="submit" name="submitBtn" class="sbtn" value="Upload" id = 'submitBtn' onclick="toUnicode(this);"/>
  9.                          </label>
  10.                      </p>
  11.                      <iframe id="upload_target" name="upload_target" src="#" ></iframe>
  12.                  </form>


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function toUnicode(str){
  3.       str = encodeURIComponent(str);
  4.          document.getElementsByName('myfile')[0].value = str;
  5.  
  6.     }
  7.  


И как правильно перекодировать из uft-8 windows-1251?
Можно ли так?

PHP:
скопировать код в буфер обмена
  1. $name =  iconv('utf-8','cp1251',basename( $_FILES['myfile']['name']));  

Похожая тема
http://forum.php.su/topic.php?fo...0&topic=1331 . Жаль JustUserR не привел кусок кода как непосредственно преобразовать имя файла функцией encodeURIComponent((

 

Powered by ExBB FM 1.0 RC1