Salador |
|
---|---|
#41889 Dr2005alex: С fileAPI не получилось - сделал по старинке, хотя есть желание сделать на fileAPI чтобы можно было просто перетаскивать файл. Нужно загрузить csv файл с данными клиента - сделал так: if($_FILES["loadfile"]["size"] > $max_file_size*1024*1024) { $t_sz->assign(array( 'FSIZE' => $max_file_size, )); $plugin_body .= $t_sz->parse('STEP_ERR_FSIZE')->text('STEP_ERR_FSIZE'); //echo 'The SIZE of File is more than '.$max_file_size.' Mb!'; } elseif (move_uploaded_file($_FILES["loadfile"]["tmp_name"],$uploaddir.basename($_FILES["loadfile"]["tmp_name"]))) { //echo("The file "."<b>".$_FILES["loadfile"]["name"]."</b>"." was downloaded successfully!"); $t_sz->assign(array( 'FNAME' => $_FILES["loadfile"]["name"], )); $plugin_body .= $t_sz->parse('STEP_SUC_FILELOAD')->text('STEP_SUC_FILELOAD'); //Успешно загружен файл if(!setlocale(LC_ALL, 'ru_RU.utf8')) setlocale(LC_ALL, 'en_US.utf8'); // Определяем параметры нужно чтобы кирилица нормально отображалась if(setlocale(LC_ALL, 0) == 'C') die('Your server does not suport LOCALS'); $file = fopen('php://memory', 'w+'); fwrite($file, iconv('CP1251', 'UTF-8', file_get_contents($uploaddir.basename($_FILES["loadfile"]["tmp_name"])))); rewind($file); $r = 0; // это строки в файле while (($row = fgetcsv($file, 1500, ";")) != FALSE) // $file - имя файла; 1500 - длина; (точка с запятой) - это разделитель полей в файле { $r++; if($r == 1) {continue;} // Не дает записать в БД первую строку (бывает так, что первая строка используется для заголовков) $arr_client=array( 'pol'=>$row[0], 'name'=>$row[1], 'fam'=>$row[2], 'otch'=>$row[3], 'email'=>$row[4], 'tel'=>$row[5], 'city'=>$row[6], 'adress'=>$row[7], 'comm'=>$row[8] ); $db->insert($table_klient, $arr_client); //Записывает клиентов в базу } fclose($file); }
|