У меня есть форма для загрузки файлов на сервер, который приводится ниже:PHP проблема загрузки нескольких файлов
<form action="/upload/" method="post" enctype="multipart/form-data">
<? foreach($this->devices as $d): ?>
<input type="checkbox" name="check_list[]" value="<?=$d['id']?>"/>
<?=$d['site']?>
<? endforeach ?>
Select Directory:
<select name="optone" size="1" onchange="setOptions(document.myform.optone.options[document.myform.optone.selectedIndex].value);">
<option value="0">Select the directory</option>
<option value="usr">/usr</option>
</select>
Select subdirectory:
<select name="opttwo" size="1">
<option value=""></option>
</select>
Choose files to upload: <input type="file" id="files" name="files[]" onchange="filesProcess(this.files);" /><br />
<output id="list"></output>
<input type="submit" value="Update" style="align:center"/>
</form>
Функция загрузки приведена ниже:
$count=count($_FILES['files']['name']);
$i=0;
if(!empty($_POST['check_list']))
{
foreach($_POST['check_list'] as $check)
{
$dir=$_POST['optone'];
$subdir=$_POST['opttwo'];
$dir_folder=$dir."_".$subdir;
exec(mkdir("firmware_update/".$check."/",0777));
exec(mkdir("firmware_update/".$check."/".$dir_folder."/",0777));
while($i<$count)
{
$f=$_FILES['files']['tmp_name'][$i];
$name=$_FILES['files']['name'][$i];
$path="firmware_update/".$check."/".$dir_folder."/".$name;
move_uploaded_file($f,$path);
$i++;
}
}
}
По форме, я необходимо выбрать сайты из флажка (например: 56,68 и т. д.), каталог (например: usr, bin) из выпадающего меню, подкаталог (например: usr и т. д.) из второго выпадающего меню и файлы для загрузки. Функция загрузки работает хорошо, за исключением небольшой проблемы.
Все файлы, которые мы выбрали, должны быть загружены в разные папки. Но приведенный выше код загружает только файлы только в первую папку. Например: если мы выберем флажки 56 и 68, каталог usr и подкаталог, а имя файла - test.php. Файл test.php должен быть загружен в 56/usr_bin/и 68/usr_bin. Но теперь код работает только для первого (56/usr_bin /). Где я совершил ошибку? Любая помощь должна быть оценена!
'Exec (MkDir ("firmware_update проверка /".$."/» $ Dir_folder.. "/", 0777)), 'почему есть' $ dir_folder' здесь? и все же установить снова на '$ path' –
$ dir_folder даст значение, подобное usr_bin. Я вижу 56/usr_bin/и 68/usr_bin. Но test.php только в первом файле, 56/usr_bin /. – NewPHP
Но я установил $ i = 0. Я попробовал 4 флажка, но файлы загружались только в первый! – NewPHP