|
|
|
| Вот есть принцип загрузки нескольких файлов
<input name="userfile[]" type="file">
<input name="userfile[]" type="file">
|
а как загрузить такой вариант чтобы работал
<input name="userfile[]" type="file"><input type="text" name="Note[]" value="">
<input name="userfile[]" type="file"><input type="text" name="Note[]" value="">
учитывая что переменные предопределяются
$Note=(SqlSafeStr(@$_POST['Note']));
где SqlSafeStr функция очистки от ненужных символов
в общем задача такова, что нужно грузить скажем 10 картинок и одновременно 10 описаний ???
помогите!
спасибо! | |
|
|
|
|
|
|
|
для: AN
(22.07.2008 в 04:34)
| | Если поля userfile и Note связаны, например, при их динамическом добавлении/удалении исключается ситуация, когда полей userfile будет к примеру 4, а полей Note 5, то просто - элементу массива userfile[0] соответсвует описание элемента массива Note[0], и т.д.. | |
|
|
|
|
|
|
|
для: sim5
(22.07.2008 в 05:00)
| | ну да, то есть картинка, и рядом описание, вот у меня на пример 10 форм добавили 5 картинок - добавилось 2 описаний в базу данных ...
вот картинки добавляются, я привязал название файлов к айдишнику записи, а текст не добавляется | |
|
|
|
|
|
|
|
для: AN
(22.07.2008 в 05:12)
| | 10 форм добавили 5 картинок! Может быть 10 полей?
1. Чтобы исключить "пустое", зайдите в раздел HTML, и найдите скрипт динамического добавления/удаления полей в форме. Есть там примеры этого. Вам только нужно добавлять/удалять сразу по два поля - одно выбора файла, и текстовое для его описания.
2. Если у вас в таблице, например, запись типа - id, image, descript, то какая проблема, получая массив $_FILES['name'], записывать полученное имя файла (или определенное вами) в поле image, а значение массива $_POST['note'] с тем же индексом, что и у $_FILES['name'], записывать в поле descript? Запись, естественно производить только при успешной загрузке файла. Если файл загружен, но нет описания к нему, то тут уж вам решать - является ли это допустимым или нет, если да, то поле desript будет пустым, если нет, возвращать форму пользователю с сообщением. | |
|
|
|
|
|
|
|
для: sim5
(22.07.2008 в 05:31)
| | а где можно посмотреть пару нормальных примеров решения?
то есть задача передавать картинки с описанием к ним? | |
|
|
|
|
|
|
|
для: AN
(22.07.2008 в 14:12)
| | Вы такой пример вполне сами можете сделать:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file[]"><br>
<input type="text" name="desc[]"><br>
<input type="file" name="file[]"><br>
<input type="text" name="desc[]"><br>
<input type="file" name="file[]"><br>
<input type="text" name="desc[]"><br>
<input type="submit" value="Send">
</form>
<?
print "<pre>";
print_r($_FILES);
print "</pre>";
print "<pre>";
print_r($_POST['desc']);
print "</pre>";
?>
|
Обратите внимание на индексы массивов. | |
|
|
|
|
|
|
|
для: sim5
(22.07.2008 в 14:38)
| | а если у меня отключен глобалз и я предопределяю все переменные типа
$Note=(SqlSafeStr(@$_POST['Note']));
как мне быть с file[] и desc[] как правильно это можно записать? | |
|
|
|
|
|
|
|
для: AN
(22.07.2008 в 15:12)
| | Если register_globals отключена, то это очень хорошо, потому вы и обращаетесь как $_POST['Note'] и т.п.. $Note=(SqlSafeStr(@$_POST['Note'])) - это никакое не предопределение, а определение переменной $Note значения поля Note формы, переданной методом POST. Значение обрабатывается с помощью пользовательской функции SqlSafeStr(), которая обрабатывает строку. Как поступить? Первое, это выбросить "собачку" из кода (@). Второе, в цикле, в котором производить проверку загруженных файлов, вызывать вашу пользовательскую функцию (если она вам нужна):
$Note = SqlSafeStr($_POST['Note'][$i]);
где $i (текущая итерация цикла) определяет, описание какого файла вы получаете, проверяете и записываете в базу. И если число полей file формы равно числу полей описаний, то этого вполне достаточно. | |
|
|
|
|
|
|
|
для: sim5
(22.07.2008 в 16:03)
| | спасибо, получилось, работает.
можен быть подскажете ссылку где можно почитать инфу по динамически появляющимся формам при добавлении? то есть видима одна форма с кнопкой добавить, если файл для закачки выбран, появляется другая, и т.д. ? | |
|
|
|
|
|
|
|
для: AN
(23.07.2008 в 12:39)
| | Да что такое! Не форма, а поле формы! Вам что для загрузки каждого файла требуется новая форма? В раздел HTML, там есть примеры динамического добавления/удаления элементов формы. Добавляется кночкой +, удаляется -. Но можно и по событию onchange элемента type="file" устроить добавление. В общем - в HTML-раздел. | |
|
|
|