私の質問を説明してみましょう:
10,000 行以上の scv ファイルをアップロードしようとしています。とにかく、これらの行でいくつかのエラーが発生する可能性があります。
ファイルがまだデータベースにインポートされる処理中に発生するエラーごとに JSON を返すことさえ可能ですか?
//編集
OKここに私の読み取りコードがあります
if (($handle = fopen('main_class/kur/'.$fileName, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 30000, ";")) !== FALSE) {
$row++;
foreach ($data AS $columns=>$val){
$data[$check->numberToColumnName($columns+1)]=$val;
unset($data[$columns]);
}
$FormtedData = $check->FormatAllData($data);
foreach ($FormtedData['vars'] AS $key=>$value){
$column_type = $check->CheckType($value,$key);
switch ($column_type){
case 'int' : $type=' int(11) unsigned NOT NULL ';
break;
case 'float' : $type=' FLOAT NOT NULL ';
break;
case 'TEXT' : $type=' TEXT NOT NULL ';
break;
case 'varchar' : $type=' VARCHAR( 255 ) NOT NULL ';
break;
default : ' int(11) unsigned NOT NULL ';
}
if ($row<3){
$check->addColumnIfItDoesNotExist($key,$type);
}
if ($column_type=='TEXT'){
$PreviousType = $check->SingleColumnType($key);
if ($PreviousType=='varchar(255)'){
$check->ChangeCoolumnType($key,$type);
}
}
}
$check->InsertValue($FormtedData['vars']);
/*
//$num = count($data);
//echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
//echo $data[$c] . "<br />\n";
}*/
$column++;
if ($check->numberToColumnName($num+1)==$column){
$column='A';
}
//end of while for each row
}
fclose($handle);
//end of open
}
ここに私のアップローダーがあります:
function createUploader(){
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader-demo1'),
action: '?func=FileUpload',
debug: false,
onProgress : function(a,b,c,d,e,f){
// dunno what is this :D
},
onComplete : function (a,b,json){
$.each(eval(json), function(i, item) {
console.log(i,'---',item,'<-');
});
},
});
}