|
|
|
|
|
для: Василий
(04.01.2012 в 17:26)
| | УРА!!! СВЕРШИЛОСЬ ЧУДО!!! )))
Удачи в дальнейшей разработке | |
|
|
|
|
|
|
|
для: cheops
(04.01.2012 в 17:14)
| | получилось!
Спасибо. Файл записывается.
Есть вопрос. Открываю другую тему | |
|
|
|
|
|
|
|
для: Slo_Nik
(04.01.2012 в 16:55)
| | >но давно уяснил, что поэтапное решение лучше всего.
Тоже так считаю, но уж больно много всего в Web, тут 10 лет не хватит, чтобы охватить все технологии, с чего-то нужно начинать.
>Проблема в том, что Василий не хочет думать и пытается делать всё сразу, вместо того, чтобы
>разбить решение на этапы.
Нормально он думает, просто информации у него пока мало (а у нас она на подкорку вывалилась и нам приходится напрягаться, чтобы вспоминать и прописывать вещи, которые уже давно кажутся само собой разумеющимися - ничего, это полезно :). Василий же, посмотрит, приобретет опыт и сам решит, как ему штурмовать эту гору (последовательно или мощной атакой по всем направлениям). Может он вообще развернется и пойдет штурмовать что-то другое :))) | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 17:03)
| | Нет, не верна. Тут есть две хитрости. Малая заключается в том, что input-тэги типа file не имеют атрибута value, его можно писать, можно не писать - этот атрибут просто игнорируется. Не будем сейчас вдаваться почему, сделано это из соображений безопасности и очень давно. Т.е. подставить в поле значение у вас не получится. При редактировании оно останется пустым, только сам пользователь может его заполнить, если захочет (например, чтобы загрузить новый файл).
Вторая хитрость более глобальная и заключается в том, что вы работаете над технологией Web-программирования. Тут просто одним знанием PHP не обойтись. Нужно знать другие языки и технологии, вот эта заковыка с file, это область языка разметки HTML, который вообще говоря тоже нужно знать и возможно вперед PHP, так как незнание его вам мешает разрабатывать PHP-приложения.
Это не упрек, это просто состояние дел, как вы понимаете, не мы придумали, чтобы Web-приложения создавались с использованием десятков языков и сами не в восторге от этого :))), но чтобы писать приложения вам придется много изучить и одним PHP, к сожалению, не обойтись. Пока просто знайте, что в file нельзя подставить значение, как в text или textarea. | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 17:01)
| | поля массива $_FILES['logo'] заполнены
так запись
<td><input type="file" name="logo" value="<?php echo $_FILES['logo']['name']; ?>">загрузить</td>
|
не верна? | |
|
|
|
|
|
|
|
для: cheops
(04.01.2012 в 16:46)
| | $error = 'Случилось что-то непонятное'; "
выводится - Случилось что-то непонятное | |
|
|
|
|
|
|
|
для: cheops
(04.01.2012 в 16:44)
| | Вы согласны, я согласен и ещё пару человек как минимум, которые тоже отвечали на вопросы Василия.
Проблема в том, что Василий не хочет думать и пытается делать всё сразу, вместо того, чтобы разбить решение на этапы.
1)Объединить формы и проверить корректность html
2) Загрузить файл, добиться того, чтобы файл загружался туда куда надо и под нужным именем
3) Объединить обработчики
4)В завершении всего записать новое имя в Базу Данных
5) Контролировать ошибки и содержимое массивов $_POST и $_FILES
Я не говорю, что я гений, знаю не намного большего чем Василий, но давно уяснил, что поэтапное решение лучше всего.
Теперь для Василия
<?php
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
// Вот здесь я бы проверил, что возвращает функция, что содержит $message
// и если содержит сообщение об успешной загрузке файл - создавать запрос и писать в базу
}
|
это как вариант решения задачи, а их может быть несколько | |
|
|
|
|
|
|
|
для: Василий
(04.01.2012 в 16:44)
| | Просто смотреть, будет ли пользователь загружать файл, если поля массива $_FILES['logo'] заполнены, значит, пользователь пытается заменить файл, действуйте по алгоритму, описанному постом выше. Если поля пусты, значит он хочет, чтобы файл остался старым и ничего с ним делать не нужно. | |
|
|
|
|
|
|
|
для: Slo_Nik
(04.01.2012 в 16:40)
| | так как надо то? | |
|
|
|
|
|
|
|
для: Slo_Nik
(04.01.2012 в 16:40)
| | Да согласен, это невозможно. Нужно просто при попытке изменить файл, удалять старый и загружать новый. Здесь ни браузер с сервером, ни PHP не предоставляют автоматический код, все эти операции придется программировать вручную.
1) Проверить загружается ли файл
2) Если загружается, удалить старый
3) Поместить на его место новый
4) Исправить запись в базе данных | |
|
|
|
|