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

Salador
#41903 08.07.2016 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);
			}