Forumlar / National / Russian / Модули и плагины / [test] module FileAPI

Salador
#41903 2016-07-08 14:28
#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);
            }