У нас очень много проблем с кодировкой и сопоставлениями, которые решаются однозначно.Все транзакции, которые у нас были, были головной болью, но мы решили с помощью ajax, html и php в базе данных mysql, наконец-то мы решили все проблемы, наконец.
Но мы делаем загрузку ajax csv (только с; для отдельных полей)) с любой
испанской буквой (ñÑáéíóú) поле обрезается при загрузке, когда найти эти буквы.
это моя функциональная загрузка, вызванная из моего ajax:
if(!empty($_FILES['fileajax']['name'])){
try {
$DB = new Db(DBHost,DBName,DBUser,DBPassword);
$output = "";
$allowed_ext = array("csv");
$tmp = explode('.', $_FILES['fileajax']['name']);
$extension = end($tmp);
if(in_array($extension,$allowed_ext)){
$file_data = fopen($_FILES['fileajax']['tmp_name'],"r");
fgetcsv($file_data, 10000, ";");
while($row = fgetcsv($file_data)){
$datos = explode(";",$row[0]);
$values = array(
addslashes($datos[0]),
addslashes($datos[1]),
addslashes($datos[2]),
addslashes($datos[3]),
date('Y-m-d H:i:s', strtotime($datos[4])),
date('Y-m-d H:i:s', strtotime($datos[5])),
date("Y-m-d H:i:s"),
date("Y-m-d H:i:s"),
$_SESSION['sess_username_id'],
$_SESSION['sess_username_id']
);
$DB->query("INSERT INTO table (idP, num, nom, can, inio, mino, rt, tiate, idUate, idUrt) VALUES(?,?,?,?,?,?,?,?,?,?)", $values);//Parameters must be ordered
var_dump($values);
}
}else{
echo "error1";
}
}catch (PDOException $e) {
echo $this->ExceptionLog($e->getMessage());
die();
}
}else{
echo "error2";
}
и наш ajax:
$('#upload_csv').on('submit',function(e){
e.preventDefault();
$('#preloader').fadeIn('slow');
$.ajax({
url: "acciones/importItem.php",
method: "POST",
data: new FormData(this),
contentType:false,
cache: false,
processData:false,
success: function (data){
//console.log(data);
if(data == 'error1'){
toastr.error('Archivo no valido...', 'Cargar partida', {timeOut: 1500});
}else if(data == 'error2'){
toastr.error('Seleccione Archivo...', 'Cargar partida', {timeOut: 1500});
}else{
toastr.success('Partidas cargadas exitosamente...', 'Cargar partida', {timeOut: 1500});
$('#modalSubirItem').modal('hide');
location.reload();
}
}
});
$('#preloader').fadeOut('slow');
});
На самом деле, я думаю, что мы подделываем что-то в конфигурации загрузки.
Это мой файл для загрузки (сохраненный как csv filetype (пожалуйста, сделайте ваш csv с этим)): jsfiddle inквартира html !!
https://jsfiddle.net/x7e2am5c/2/