我们在字符集和排序规则方面有很多问题需要解决。所有的事务我们都遇到了麻烦,但我们解决了ajax,html和php在mysql数据库,最后我们解决了所有的麻烦。
但是我们要上传一个ajaxcsv文件(只有;用于分隔字段)
西班牙语字母(ññáéíóú) 当你找到那些信件的时候,上传的时候就会被剪切。
这是我的函数上传,从我的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文件类型(请用这个制作csv)):jsfiddle in html appartment!!
https://jsfiddle.net/x7e2am5c/2/
2条答案
按热度按时间svdrlsy41#
谢谢西奥的帮助。
你带给我的密码
setlocale(LC_ALL, "es_ES.UTF-8");
上传结果没有什么不同,但它是一个解决方案的指南,该解决方案是使用utf8\u编码添加php数组Map。以下代码修改是csv ajax上载的解决方案:
谢谢!
exdqitrt2#
我想
fgetcsv()
是罪魁祸首。因为它使用区域设置,utf-8文件可能会被错误地读入。在这种情况下
可能会成功