Задать вопрос
tundramani
@tundramani

Как из исходного файла на клиенте получить base64 и воссоздать этот файл на сервере?

PHP 5.3.5

Из инпута получаю текстовый файл.
Через FileReader получаю этот файл в виде base64.
Отправляю это на сервер чтобы на нем сохранить этот файл

Хочу обойтись без использования форм.

var x = JSON.stringify([text])
var запрос = new XMLHttpRequest()
запрос.open('POST', '1.php')  
запрос.send(x)


$x = 'base64'  //полученная строка
$dir ='./раздел/';
$d = base64_decode($x); 
file_put_contents($dir . '1.txt', $d);


но в итоге кодировка убивается
как сделать правильно?
  • Вопрос задан
  • 418 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@alexandrraizer
PHP developer
можно пробовать определить получаемую кодировку через mb_detect_encoding а затем с помощью iconv преобразовать в utf8.
$x = 'base64'  //полученная строка
$dir ='./раздел/';
$code = mb_detect_encoding($x, "auto");
$x = iconv($code, "ISO-8859-1", $x);
//возможно просто так поможет:
//$x = iconv("UTF-8", "ISO-8859-1//IGNORE", $x);
$d = base64_decode($x); 
file_put_contents($dir . '1.txt', $d);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽