Multi upload

Материал из Wiki

Перейти к: навигация, поиск

Метод, расширяющий библиотеку Upload и позволяющий загружать не обычное поле(напр. userfile), а массив полей (userfile[]). Метод пользуется "родным" методом do_upload() и занимается тем, что подготавливает данные для его многократного воспроизведения. Использование аналогично стандартному, за исключением того, что сама функция загрузки возвращает массив данных с информацией о загруженных файлов. Информация идентична той, что вы получаете, пользуясь стандартным методом data().

/**
	 * Загружает массив файлов на сервер
	 *
	 * @access	public
	 * @return	array
	 */

	function multi_upload($field='userfield')
	{
		if (!empty($_FILES[$field]))
		{
		$multi_data=array();	   
		foreach ($_FILES[$field]['name'] AS $index => $val)
			{
				if(!empty($_FILES[$field]['name'][$index])) {
					foreach ($_FILES[$field] AS $key => $val_arr)
						{
							$_FILES[$field.$index][$key] = $val_arr[$index];
						}
					self::do_upload($field.$index);
					$multi_data[$index]=self::data();
					$multi_data[$index]["error"]=self::display_errors();
					$this->file_name ="";
				}
			}
			unset($_FILES[$field]);
			return $multi_data;
		}
	}
Личные инструменты