Загрузка нескольких файлов на сервер

Статус
В этой теме нельзя размещать новые ответы.
Так содержимое $_FILES посмотрел с помощью print_r ($_FILES);

вот что мне выдало:

Array ( [file_a] => Array ( [name] => linuxbook.rar [type] => application/x-compressed [tmp_name] => C:\WINDOWS\TEMP\php181.tmp [error] => 0 [size] => 69197 ) [thumb_a] => Array ( [name] => foto_9652.gif [type] => image/gif [tmp_name] => C:\WINDOWS\TEMP\php182.tmp [error] => 0 [size] => 6439 ) [subfile_1] => Array ( [name] => lection2.rar [type] => application/x-compressed [tmp_name] => C:\WINDOWS\TEMP\php183.tmp [error] => 0 [size] => 298905 ) [subfile_2] => Array ( [name] => lection.rar [type] => application/x-compressed [tmp_name] => C:\WINDOWS\TEMP\php184.tmp [error] => 0 [size] => 298905 ) [subfile_3] => Array ( [name] => linuxbook.rar [type] => application/x-compressed [tmp_name] => C:\WINDOWS\TEMP\php185.tmp [error] => 0 [size] => 69197 ) )

Файлы впринципе загружаются, хотя сразу полез в TEMP их там уже небыло!

посмотрите может я что то не так делаю вот как я вставил ваш код:

PHP:
##================================Функция загрузки файла=========================================##
function do_upload($upload_dir, $file_prefix) {

	global $file_name;
	$temp_name = $_FILES['file_a']['tmp_name'];
	$file_path = $upload_dir.$file_name;

	$result  =  move_uploaded_file($temp_name, $file_path);
	
	
	
	

	$zip = new ZipArchive();
	$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
	if ($file_ext == ".zip" )
	{

		$zip->open($file_path, ZIPARCHIVE::CREATE);
		$zip->deleteName('smart60.ru');
		$zip->deleteName('smart60.ru.txt');
		$zip->addFile(ROOT_DIR . "/Smarts.org.ua.url", "Smarts.org.ua.url");
		$zip->addFile(ROOT_DIR."/uploads/files_new/Opisanie.txt", "Opisanie.txt");
	}
	else
	{
			$zip->open($file_path.".zip", ZIPARCHIVE::CREATE);
		$zip->addFile($file_path, $file_name);
		$zip->addFile(ROOT_DIR . "/Smarts.org.ua.url", "Smarts.org.ua.url");
		$zip->addFile(ROOT_DIR. "/uploads/files_new/Opisanie.txt", "Opisanie.txt");
		//       echo $file_path;
		@unlink($file_path);
		$file_name .= ".zip";
	}
	$zip->close();
	
	

	if ($file_ext != ".zip" )
	@unlink($file_path);

	$file_path = $upload_dir.$file_name;
	if (!chmod($file_path,0666))
	echo "<center><b>Не удалось установить права доступа для файла в 0666!!!</b></center>";
	else
	echo ($result)?"" :
	"<center><b>Непредвиденная ошибка при загрузке файла!!!<br />Одна из причин: привышен размер загружаемого файла на сервер (php.ini).</b></center>";	
	}

	

function do_upload2($upload_dir, $link_url, $file_prefix) {
	global $file_name;
	$temp_name = $link_url;
	$file_path = $upload_dir.$file_name;

	$result  =  copy($temp_name, $file_path);

	$zip = new ZipArchive();
	$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
	if ($file_ext == ".zip" )
	{
		$zip->open($file_path, ZIPARCHIVE::CREATE);
		$zip->addFile(ROOT_DIR . "/Smarts.org.ua.url", "Smarts.org.ua.url");
	}
	else
	{
		$zip->open($file_path.".zip", ZIPARCHIVE::CREATE);
		$zip->addFile($file_path, $file_name);
		$zip->addFile(ROOT_DIR . "/Smarts.org.ua.url", "Smarts.org.ua.url");
		echo $file_path;
		@unlink($file_path);
		$file_name .= ".zip";
	}
	$zip->close();

	if ($file_ext != ".zip" )
	@unlink($file_path);

	@unlink($temp_name);

	$file_path = $upload_dir.$file_name;
	if (!chmod($file_path,0666))
	echo "<center><b>Не удалось установить права доступа для файла в 0666!!!</b></center>";
	else
	echo ($result)?"" :
	"<center><b>Непредвиденная ошибка при загрузке файла!!!<br />Одна из причин: привышен размер загружаемого файла на сервер (php.ini).</b></center>";
}

##===============================================================================================##
##===============================================================================================##
##================================Функция загрузки дополнительных файлов========================##
function do_upload_subfile_1 ($upload_dir, $file_prefix) {




// когда файл загружается на сервер, он записывается во временный каталог под временным именем. Получаем это имя и записываем имя в $tmp_name 
$temp_name = $_FILES['subfile_1']['tmp_name']; // убери все-таки скобки и поставь subfile_1 :) 
// из временного каталога загруженный файл надо переписать туда. куда мы хотим. Вот в этот каталог, например: 
$file_path = $upload_dir.$file_name;  
// а это само перемещение файла из временного каталога. 
$result  =  move_uploaded_file($temp_name, $file_path); 
}

##===============================================================================================##





if (isset ($_REQUEST['mod'])) $do = $_POST['mod']; else $mod = "";

include(ENGINE_DIR.'/data/'.$modulname.'_config.php');
include_once(ENGINE_DIR.'/classes/parse.class.php');

$parse = new ParseFilter(Array(), Array(), 1, 1);


if (isset($_REQUEST['mod']) AND $_REQUEST['mod'] == "addfile" AND $is_logged){

	$description = $db->safesql($parse->BB_Parse($parse->process($_POST['description']), false));
	$parse->ParseFilter();
	$title = $db->safesql($parse->process($_POST['title']));
	$version = $db->safesql($parse->process($_POST['version']));
	$platform = $db->safesql($parse->process($_POST['platform']));

	$metatags = $description;
	$keywords = $metatags['keywords'];

	$cat_title  = intval($_POST["cat_title"]);

	if(trim($title) == "" or !$title) {
		$stop = 'Введите название файла!';
	}

	elseif(strlen($title) > 200) {
		$stop = 'Введено слишком длинное название';
	}

	elseif(trim($description) == "" or !$description) {
		$stop = 'Введите описание файла!';
	}

	elseif(strlen($version) > 200) {
		$stop = 'Поле <i>Версия файла</i> не может быть таким длинным';
	}
	elseif(strlen($platform) > 200) {
		$stop = 'Поле <i>Платформа/формат файла</i> не может быть таким длинным';
	}

	elseif ($cat_title==0 OR empty($cat_title))
	{
		$stop = 'Выберите категорию для добавляемого файла!';
	}

	elseif ($cat_title!=0 AND $cat_i_down[$cat_title]['status_down']==0)
	{
		$stop = 'В данную категорию загрузка файлов запрещена!';
	}

	else {

		$files_dir=$cat_i_down[$cat_title]['dir'];

		##================================загрузка файла================================================##
		$MAX_SIZE = $filesConfig['maxsize'];

		$FILE_EXTS  = explode (",", $filesConfig['accepted_files']);
		foreach($FILE_EXTS as $value) $FILE_EXTS[] = ".".$value;

		$upload_dir = ROOT_DIR."/uploads/".$modul_filesdir."/$files_dir/";

		if(!is_dir($upload_dir))
		mkdir("$upload_dir", 0777);
		else
		@chmod ($upload_dir, 0777);

		$file_prefix = time()."_";

##====== Добавлено

if ($link_url!="")
{
if ($filesConfig['allow_addfile_url'] == "1") {
  $link_url  = str_replace("\\", "/", $link_url);
  $file_name = $file_prefix.end (explode ("/",$link_url));
  $file_name_arr = explode(".",$file_name);
  $file_type = end($file_name_arr);
  $type = end($file_name_arr);
  $file_name = totranslit (stripslashes($file_name_arr[0])).".".totranslit($type);
  $filesize1 = @filesize_url($link_url);
  $file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
  $filesize = $filesize1;

			if ( $filesize1 > $MAX_SIZE)
			{
//	Тут мы выводим ошибкуу
				echo "<center><b>Этот файл превышает максимально допустимый размер закачиваемого файла!</b></center><br>";
				$stop = "Code files 1";
			}

  //File Extension Check
			elseif (!in_array($file_ext, $FILE_EXTS))
			{
				echo "<center>Извините, но такой тип файла - <b>$file_name($file_type)</b> не разрешён для загрузки</center><br>";
				$stop = "Code files 2";
			}
			else
			$do_upload_file = 2;
		}

}

##====== Добавлено1
		elseif (!empty($_FILES['file_a']['name'])) {
			$file_type = $_FILES['file_a']['type'];
			$file_name = $file_prefix.$_FILES['file_a']['name'];
			$file_name_arr = explode(".",$file_name);
			$type = end($file_name_arr);
			$file_name = totranslit (stripslashes($file_name_arr[0])).".".totranslit($type);
			$filesize1 = $_FILES['file_a']['size'];
			$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
			
		
			if (!empty($_FILES['file_a']['name'])  ) {
				$filesize = $filesize1;
			}
			if (empty($_FILES['file_a']['name'])  ) {
				$filesize = $size * 1024;
				$file_name = 0;
			}
			elseif ( $filesize1 > $MAX_SIZE)
			{
				echo "<center><b>Этот файл превышает максимально допустимый размер закачиваемого файла!</b></center><br>";
				$stop = "Code files 1";
			}

			//File Extension Check
			else if (!in_array($file_ext, $FILE_EXTS))
			{
				echo "<center>Извините, но такой тип файла - <b>$file_name($file_type)</b> не разрешён для загрузки</center><br>";
				$stop = "Code files 2";
			}
			else
			{
			$do_upload_file = 1;
			}
		}
		else
		{
			echo "<center><b>Файл не был задан!</b><center>";
			$stop = "Code files 5";
		}

		$thistime = date ("Y-m-d H:i:s");
		##===============================================================================================##

		##==========================================Создание и сохранение скриншота======================##
		if ($filesConfig['allow_screenshot'] == 1) {

			if ((!empty($_FILES['thumb_a']['name'])) or ($imageurl!=""))
			$file_prefix = time()."_";

			$MAX_SIZE_THUMB = $filesConfig['maxsize_thumb'];
			$allowed_extensions_thumb = "gif,jpg,png,jpe,jpeg";

			$FILE_EXTS_THUMB  = explode (",", $allowed_extensions_thumb);
			foreach($FILE_EXTS_THUMB as $value) $FILE_EXTS_THUMB[] = ".".$value;

			$upload_dir_thumb = ROOT_DIR."/uploads/".$modul_filesdir."/$files_dir/thumbs/";
			if(!is_dir($upload_dir))
			mkdir("$upload_dir", 0777);
			else
			@chmod ($upload_dir, 0777);

			if(!is_dir($upload_dir_thumb))
			mkdir("$upload_dir_thumb", 0777);
			else
			@chmod ($upload_dir_thumb, 0777);

			if ($imageurl!="") {
if ($filesConfig['allow_addfile_url'] == "1") {

				$urlcopy = "yes";
				$imageurl  = str_replace("\\", "/", $imageurl);
				$file_name_thumb = end (explode ("/",$imageurl));
				$file_name_arr_thumb = explode(".",$file_name_thumb);
				$file_type_thumb = end($file_name_arr_thumb);
				$type_thumb = end($file_name_arr_thumb);
				$file_name_thumb = totranslit (stripslashes($file_name_arr_thumb[0])).".".totranslit($type_thumb);
				$filesize1_thumb = @filesize_url($imageurl);
				$file_ext_thumb = strtolower(substr($file_name_thumb,strrpos($file_name_thumb,".")));
				if($file_name_thumb != "") $file_name_thumb  = totranslit(stripslashes($file_name_thumb));

				if ( $filesize1_thumb > $MAX_SIZE_THUMB) {
					echo "<center><b>Этот файл превышает максимально допустимый размер закачиваемого скриншота!</b></center><br>";
					$stop = "Code image 1";
				}

				//Thumb Extension Check
				elseif (!in_array($file_ext_thumb, $FILE_EXTS_THUMB)){
					echo "<center>Извините, но такой тип изображения - <b>$file_name_thumb($file_type_thumb)</b> не разрешён для загрузки</center><br>";
					$stop = "Code image 2";
				}
				else
				$temp_name_thumb = $_FILES['thumb_a']['tmp_name'];

				$file_path_thumb = $upload_dir_thumb.$file_prefix.$file_name_thumb;
				if (($urlcopy= "yes") AND ($stop == "")){
					@copy($imageurl, $file_path_thumb);
					//Make and save a screenshot
					$thumb=new thumbnail($file_path_thumb);
					if ($thumb->size_auto($filesConfig['widththumb'])) {

						$thumb->jpeg_quality($config['jpeg_quality']);

						if ($filesConfig['allow_watermark'] == "1") $thumb->insert_watermark($filesConfig['max_watermark']);

						$thumb->save($file_path_thumb);

						@chmod ($file_path_thumb, 0666);
					}
				}
			}

}
			elseif (!empty($_FILES['thumb_a']['name'])) {
				$file_type_thumb = $_FILES['thumb_a']['type'];
				$file_name_thumb = $_FILES['thumb_a']['name'];
				$file_name_arr_thumb = explode(".",$file_name_thumb);
				$type_thumb = end($file_name_arr_thumb);
				$file_name_thumb = totranslit (stripslashes($file_name_arr_thumb[0])).".".totranslit($type_thumb);
				$filesize1_thumb = $_FILES['thumb_a']['size'];
				$file_ext_thumb = strtolower(substr($file_name_thumb,strrpos($file_name_thumb,".")));

				//Thumb Size Check
				if ( $filesize1_thumb > $MAX_SIZE_THUMB)
				{
					echo "<center><b>Этот файл превышает максимально допустимый размер закачиваемого скриншота!</b></center><br>";
					$stop = "Code image 1";
				}

				//Thumb Extension Check
				elseif (!in_array($file_ext_thumb, $FILE_EXTS_THUMB)) {
					echo "<center>Извините, но такой тип изображения - <b>$file_name_thumb($file_type_thumb)</b> не разрешён для загрузки</center><br>";
					$stop = "Code image 2";
				}
				else
				$temp_name_thumb = $_FILES['thumb_a']['tmp_name'];

				$file_path_thumb = $upload_dir_thumb.$file_prefix.$file_name_thumb;
				if (is_uploaded_file($_FILES['thumb_a']['tmp_name']) AND ($stop == ""))
				{
					//Download screenshot
					@move_uploaded_file($temp_name_thumb, $file_path_thumb);
					//Make and save a screenshot
					$thumb=new thumbnail($file_path_thumb);
					if ($thumb->size_auto($filesConfig['widththumb'])) {

						$thumb->jpeg_quality($config['jpeg_quality']);

						if ($filesConfig['allow_watermark'] == "1") $thumb->insert_watermark($filesConfig['max_watermark']);

						$thumb->save($file_path_thumb);

						@chmod ($file_path_thumb, 0666);
					}
				}
				else
				{
					echo "<center>Скриншот не был загружен на сервер.</center>";
					$stop = "Code image 3";
				}
			}
			else
			{
				echo "<center><b>Скриншот не был задан.</b></center>";
				$stop = "Code image 3";

			}
		}
		##===============================================================================================##
		
	
	}
	
	
	
	##=============================Сохранение данных в базу данных===================================##

	// Проверка на ошибки
	if (($stop == "") AND ($do_upload_file !="")){
		if($do_upload_file == 2)
		{
			echo do_upload2($upload_dir,$link_url,$file_prefix);
		}
		elseif($do_upload_file == 1)
		{
			echo do_upload($upload_dir,$file_prefix);
		}
	}
	else
	{
		$stop .= "  <a href=\"javascript:history.go(-1)\">$lang[all_prev]</a>";
		msgbox ($lang['add_err_6'], $stop);
	}
	// END Проверка на ошибки

	if (!$stop){
		$added_time = time()+ ($config['date_adjust']*60);
		$thistime = date ("Y-m-d H:i:s", $added_time);
		

		
		if ($member_id['user_group'] == "1" or $member_id['user_group'] == "3") {
			$fpid=intval($cat_i_down[$cat_title]['parentid']);
			$db->query("INSERT INTO " . PREFIX . "_".$modul_dbtitle." (autor, date, size, version, platform, description, title, screenshot, filename, category, approve, allow_rate, allow_br) values ('$member_id[name]', '$thistime', '$filesize1', '$version', '$platform', '$description', '$title', '$file_prefix$file_name_thumb', '$file_name', '$cat_title', '0', '1', '1')");

			$db->query("UPDATE " . PREFIX . "_cat_".$modul_dbtitle." SET news_number=news_number+1 where id ='$cat_title'");
			if ($fpid !=0) {
				$db->query("UPDATE " . PREFIX . "_cat_".$modul_dbtitle." SET news_number=news_number+1 where id ='$fpid'");
			}
		} else {
			$db->query("INSERT INTO " . PREFIX . "_".$modul_dbtitle." (autor, date, size, version, platform, description, title, screenshot, filename, category, approve, allow_rate, allow_br) values ('$member_id[name]', '$thistime', '$filesize1', '$version', '$platform', '$description', '$title', '$file_prefix$file_name_thumb', '$file_name', '$cat_title', '1', '1', '1')");
			$db->query("UPDATE " . PREFIX . "_users set news_num=news_num+1 where user_id='$member_db[10]'");
		}




		if ($member_id['user_group'] == "1" or $member_id['user_group'] == "3") {
			if ($config['allow_alt_url'] == "yes")
			msgbox ('Файл успешно добавлен', "{$msg} <a href=\"{$config['http_home_url']}"."addfile/\">$lang[add_noch]</a> $lang[add_or] <a href=\"{$config['http_home_url']}".$modulname."/\">$lang[all_prev]</a>");
			else
			msgbox ('Файл успешно добавлен', "{$msg} <a href=\"$PHP_SELF?do=addfile\">$lang[add_noch]</a> $lang[add_or] <a href=\"$PHP_SELF?do=".$modulname."\">$lang[all_prev]</a>");
		} else {
			if ($config['allow_alt_url'] == "yes")
			msgbox ('Файл успешно добавлен.', "{$msg} После проверки файл появится в файловом архиве.<br><a href=\"{$config['http_home_url']}"."addfile/\">$lang[add_noch]</a> $lang[add_or] <a href=\"{$config['http_home_url']}".$modulname."/\">$lang[all_prev]</a>");
			else
			msgbox ('Файл успешно добавлен.', "{$msg} После проверки файл появится в файловом архиве.<br><a href=\"$PHP_SELF?do=addfile\">$lang[add_noch]</a> $lang[add_or] <a href=\"$PHP_SELF?do=".$modulname."\">$lang[all_prev]</a>");
		}


		@unlink(ENGINE_DIR.'/cache/system/cat_'.$modulname.'.php');
		@unlink(ENGINE_DIR.'/cache/system/count_all_'.$modulname.'.php');
		@unlink(ENGINE_DIR.'/cache/system/numrows'.$modulname.'.php');
		clear_cache('new'.$modulname.'');
		clear_cache('top_downloads_'.$modulname.'');


	}
	##===============================================================================================##
} elseif ($is_logged)
{
	$tpl->load_template(''.$modulname.'/addfile.tpl');

// Если хотим пользоваться полными bbcode то раскоментить след строку.
//	$addtype = "addnews";
	include_once ENGINE_DIR.'/modules/bbcode.php';
	$tpl->set('{title}', '');
	if ($filesConfig['allow_screenshot'] == 1) {
		$tpl->set('[allow_screenshot]',"");
		$tpl->set('[/allow_screenshot]',"");
	}
	else {$tpl->set_block("'\\[allow_screenshot\\](.*?)\\[/allow_screenshot\\]'si","");}
	if ($filesConfig['allow_addfile_url'] == 1) {
		$tpl->set('[allow_addfile_url]',"");
		$tpl->set('[/allow_addfile_url]',"");
	}
	else {$tpl->set_block("'\\[allow_addfile_url\\](.*?)\\[/allow_addfile_url\\]'si","");}
	$tpl->set('{description}','');
	$tpl->set('{version}','');
	$tpl->set('{platform}','');
	$tpl->set('{file_extensions}',$filesConfig['accepted_files']);
	$tpl->set('{bbcode}',$bb_code);
	$cats = CategoryfileSelection( 0, 0);
	$tpl->set('{category}',$cats);
	$tpl->copy_template = "<form  method=\"post\" name=\"entryform\" id=\"entryform\" action=\"\" ENCTYPE=\"multipart/form-data\">\n".$tpl->copy_template."
<input type=hidden name=mod value=addfile>
</form>";
	$tpl->compile('content');
	$tpl->clear();
}
?>


Я думаю вы его узнаете, потому, что я не убрал ваши комментарии function do_upload_subfile_1 Фуннкцию сделал пока для одного файла subfile_1
 
Функция do_upload_subfile_1 должна выглядеть примерно так:

PHP:
function do_upload_subfile_1 ($upload_dir, $file_prefix) { 
    if (!empty($_FILES['subfile_1']['name'])) { 
        $file_name = $file_prefix.$_FILES['subfile_1']['name']; 
        $temp_name = $_FILES['subfile_1']['tmp_name'];
        $file_path = $upload_dir.$file_name;   
        $result  =  move_uploaded_file($temp_name, $file_path);  
    }
}

Нужно определиться, куда и под каким именем должен записываться файл.

Но функция do_upload_subfile_1 еще ниоткуда не вызывается. Вставляем вызов этой функции:

Код:
    // Проверка на ошибки 
    if (($stop == "") AND ($do_upload_file !="")){ 
        if($do_upload_file == 2) 
        { 
            echo do_upload2($upload_dir,$link_url,$file_prefix); 
        } 
        elseif($do_upload_file == 1) 
        { 
            echo do_upload($upload_dir,$file_prefix); 
        } 
        [B]do_upload_subfile_1($upload_dir,$file_prefix);[/B]
    }
 
Вот чт опроисходит после вызова функции:

Warning: move_uploaded_file(E:\AppServ\www/uploads/download/wav/:( failed to open stream: Permission denied in E:\AppServ\www\engine\modules\files\addfile.php on line 367 Warning: move_uploaded_file(:( Unable to move 'C:\WINDOWS\TEMP\php22.tmp' to 'E:\AppServ\www/uploads/download/wav/' in E:\AppServ\www\engine\modules\files\addfile.php
 
в Apache hpptd.conf вставь:

Код:
<Directory "'c:\windows\temp">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

но лучше под временные файлы выделить отдельный каталог. Для этого нужно установить "upload_tmp_dir" в php.ini в значение, например, "c:\windows\temp\php". И тогда в httpd.conf нужно указать именно этот каталог:

Код:
<Directory "'c:\windows\temp\php">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
 
Мистика однако! Мучался на локалке, сделал все как вы сказали, не помогло! Выложил на хост и попробовал но ошибка не исчезла!

Warning: move_uploaded_file(/var/www/vhosts/www/acid/uploads/download/wav/:( failed to open stream: Is a directory in /var/www/vhosts/www/acid/engine/modules/files/addfile.php on line 367 Warning: move_uploaded_file(:( Unable to move '/tmp/phpwwb0pF' to '/var/www/vhosts/www/acid/uploads/download/wav/' in /var/www/vhosts/www/acid/engine/modules/files/addfile.php on line 367

И при всем при этом основной файл загружается в архив нормально!
 
Ошибка говорит о том, что в качестве места, куда копировать файл, задан каталог, а не имя файла:

Код:
function do_upload_subfile_1 ($upload_dir, $file_prefix) {  
    if (!empty($_FILES['subfile_1']['name'])) {
        [B]// если сюда попали, то имя файла не пусто[/B]
        $file_name = $file_prefix.$_FILES['subfile_1']['name'];  
        $temp_name = $_FILES['subfile_1']['tmp_name'];
        [B]// похоже, что здесь $file_name уже пусто[/B]
        echo "file_name=$file_name<br>"; [B]// выводим, чтобы посмотреть на имя файла[/B]
        $file_path = $upload_dir.$file_name;    
        echo "file_path=$file_path<br>"; [B]// выводим, чтобы посмотреть на путь[/B]
        $result  =  move_uploaded_file($temp_name, $file_path);   
    } 
}

посмотрите, может быть у вас неверно написано $file_name
 
Спасибо вам огромное за то что так долго со мной мучались! А ошибка то была в имени файла, которое я не указал :)

Код:
$file_name = $file_prefix.$_FILES['subfile_1']['name'];
 
Возникла новая проблема! Я думал создать новую таблицу в которой будут присутствовать id-файла, название файла, ну и соответственно id-файла к которому прикрепляем дополнительные файлы! Но как узнать id - файла к которому прикрепить дополнительные файлы ? Ведь по сути мы еще не знаем какой id будет у файла!

PHP:
  if ($member_id['user_group'] == "1" or $member_id['user_group'] == "3") { 
            $fpid=intval($cat_i_down[$cat_title]['parentid']); 
            $db->query("INSERT INTO " . PREFIX . "_".$modul_dbtitle." (autor, date, size, version, platform, description, title, screenshot, filename, category, approve, allow_rate, allow_br) values ('$member_id[name]', '$thistime', '$filesize1', '$version', '$platform', '$description', '$title', '$file_prefix$file_name_thumb', '$file_name', '$cat_title', '0', '1', '1')");

Получается нужно будет делать еще один запрос к базе с выборкой по $file_name ?
 
если в таблице есть колонка с auto_increment, то можно использовать функцию mysql_insert_id(), которая возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT. Например:

PHP:
mysql_query("INSERT INTO mytable (product) values ('tra-ta-ta')");
printf ("Последняя вставленная запись имеет id %d\n", mysql_insert_id());
 
вот что получилось!

PHP:
##=============================Добавляем аттач в таблицу========================================##
			##=============================Добавляем аттач в таблицу========================================##
			//printf ("Последняя вставленная запись имеет id %d\n", mysql_insert_id());
			$id_files = mysql_insert_id();
			                       ##========Файл1=============##
			if($_FILES['subfile_1']['name'] != "") {$file_name_1 = $_FILES['subfile_1']['name'];  $file_size_1 = $_FILES['subfile_1']['size'];
			$db->query("INSERT INTO " . PREFIX . "_".$modul_dbtitle_att." (file_id, name, size, author, date) values ('$id_files', '$file_name_1', '$file_size_1','$member_id[name]', '$thistime')"); }
			                    ##========Файл2=============##
			if($_FILES['subfile_2']['name'] != "" ) {$file_name_2 = $_FILES['subfile_2']['name'];  $file_size_2 = $_FILES['subfile_2']['size'];
			$db->query("INSERT INTO " . PREFIX . "_".$modul_dbtitle_att." (file_id, name, size, author, date) values ('$id_files', '$file_name_2', '$file_size_2','$member_id[name]', '$thistime')");	}				
			                   ##=========Файл3=============##
            if($_FILES['subfile_3']['name'] != "" ) {$file_name_3 = $_FILES['subfile_3']['name'];  $file_size_3 = $_FILES['subfile_3']['size'];
			$db->query("INSERT INTO " . PREFIX . "_".$modul_dbtitle_att." (file_id, name, size, author, date) values ('$id_files', '$file_name_3', '$file_size_3','$member_id[name]', '$thistime')"); }
			##==============================================================================##

Скажите насколько коректен этот код, может чтото не так сделал или может можно както его улучшить ? Хотя принципе он работает
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху