Другие языки программирования и технологии

Как на PHP получать пути к файлам из массива names в теге input при загрузке некольких файлов?

Задача: при загрузке одного файла: ======================================= HTML: <form> <input> <input> </form> PHP: $callup = upload('uploadfile', $n1, $n2); //Вызываем функцию загрузки файлов, путь к файлу на компе пользователя передается через 'uploadfile'; $n1, $n2 - не важно, другие переменные ====================================== Это ок,всё работает. Для нескольких файлов: ======================================= HTML: <form> <input> <input> <input> <input> </form> PHP: $callup = upload('uploadfile[1]', $n1, $n2); //Вызываем функцию загрузки 1-го файлов, путь к файлу на компе пользователя передается через 'uploadfile[1]' $callup = upload('uploadfile[2]', $n1, $n2); //Вызываем функцию загрузки 2-го файлов, путь к файлу на компе пользователя передается через 'uploadfile[2]' $callup = upload('uploadfile[3]', $n1, $n2); //Вызываем функцию загрузки 3-го файлов, путь к файлу на компе пользователя передается через 'uploadfile[3]' ====================================== Так не работает. Загвоздка именно в способе передачи пути функции upload ('uploadfile[2]', $n1, $n2) через массив 'uploadfile[]'. Как правильно указать путь? Подскажите, как решить задачу?
ПТ
Павел Титов
13 683
ну поскольку вы передаете файлы на сервер то вы как минимум должны использовать массив $_FILES в скрипте, обрабатывающем получение файла/ов.. . ну и в форме тоже дописать что вы передаете в ней файлы.. . далее вы загрузили файлы, и вы должны их скопировать по нужному вам пути из временной директории (move_upload_files или как-то так).. . ну и обращаться к файлам через $_FILES[ ' upload ' ] [ 1 ] [ ' filename ' ] - в зависимости от того что вам от файла надо...
Константин Ситников
Константин Ситников
34 293
Лучший ответ
input name="uploadfile1" type="file"
input name="uploadfile2" type="file"
input name="uploadfile3" type="file"

$_FILES['uploadfile1']['tmp_name']
$_FILES['uploadfile2']['tmp_name']
$_FILES['uploadfile3']['tmp_name']

либо как вы хотите (зачем не знаю)
$callup = upload('uploadfile1', $n1, $n2); //Вызываем функцию загрузки 1-го файлов, путь к файлу на компе пользователя передается через 'uploadfile1'
$callup = upload('uploadfile2', $n1, $n2); //Вызываем функцию загрузки 2-го файлов, путь к файлу на компе пользователя передается через 'uploadfile2'
$callup = upload('uploadfile3', $n1, $n2); //Вызываем функцию загрузки 3-го файлов, путь к файлу на компе пользователя передается через 'uploadfile3'

но можно и просто опять таки
$callup = upload('uploadfile[0]', $n1, $n2); //Вызываем функцию загрузки 1-го файлов, путь к файлу на компе пользователя
$callup = upload('uploadfile[1]', $n1, $n2); //Вызываем функцию загрузки 2-го файлов, путь к файлу на компе пользователя
$callup = upload('uploadfile[2]', $n1, $n2); //Вызываем функцию загрузки 3-го файлов, путь к файлу на компе пользователя

если в форме будет простое
form
input name="uploadfile[]" type="file"
input name="uploadfile[]" type="file"
input name="uploadfile[]" type="file"
input name="upload_btn" type="submit" value="Загрузить"
/form

заметьте что без номеров тут все!! !
и не забываем правило - первый элемент массива это элемент с номером ноль а не один!! !