Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: перезапись временного файла

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: Slo_Nik   (04.01.2012 в 17:31)   письмо автору
 
   для: Василий   (04.01.2012 в 17:26)
 

УРА!!! СВЕРШИЛОСЬ ЧУДО!!! )))
Удачи в дальнейшей разработке

  Ответить  
 
 автор: Василий   (04.01.2012 в 17:26)   письмо автору
 
   для: cheops   (04.01.2012 в 17:14)
 

получилось!
Спасибо. Файл записывается.
Есть вопрос. Открываю другую тему

  Ответить  
 
 автор: cheops   (04.01.2012 в 17:18)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 16:55)
 

>но давно уяснил, что поэтапное решение лучше всего.
Тоже так считаю, но уж больно много всего в Web, тут 10 лет не хватит, чтобы охватить все технологии, с чего-то нужно начинать.
>Проблема в том, что Василий не хочет думать и пытается делать всё сразу, вместо того, чтобы
>разбить решение на этапы.
Нормально он думает, просто информации у него пока мало (а у нас она на подкорку вывалилась и нам приходится напрягаться, чтобы вспоминать и прописывать вещи, которые уже давно кажутся само собой разумеющимися - ничего, это полезно :). Василий же, посмотрит, приобретет опыт и сам решит, как ему штурмовать эту гору (последовательно или мощной атакой по всем направлениям). Может он вообще развернется и пойдет штурмовать что-то другое :)))

  Ответить  
 
 автор: cheops   (04.01.2012 в 17:14)   письмо автору
 
   для: Василий   (04.01.2012 в 17:03)
 

Нет, не верна. Тут есть две хитрости. Малая заключается в том, что input-тэги типа file не имеют атрибута value, его можно писать, можно не писать - этот атрибут просто игнорируется. Не будем сейчас вдаваться почему, сделано это из соображений безопасности и очень давно. Т.е. подставить в поле значение у вас не получится. При редактировании оно останется пустым, только сам пользователь может его заполнить, если захочет (например, чтобы загрузить новый файл).
Вторая хитрость более глобальная и заключается в том, что вы работаете над технологией Web-программирования. Тут просто одним знанием PHP не обойтись. Нужно знать другие языки и технологии, вот эта заковыка с file, это область языка разметки HTML, который вообще говоря тоже нужно знать и возможно вперед PHP, так как незнание его вам мешает разрабатывать PHP-приложения.
Это не упрек, это просто состояние дел, как вы понимаете, не мы придумали, чтобы Web-приложения создавались с использованием десятков языков и сами не в восторге от этого :))), но чтобы писать приложения вам придется много изучить и одним PHP, к сожалению, не обойтись. Пока просто знайте, что в file нельзя подставить значение, как в text или textarea.

  Ответить  
 
 автор: Василий   (04.01.2012 в 17:03)   письмо автору
 
   для: Василий   (04.01.2012 в 17:01)
 

поля массива $_FILES['logo'] заполнены

так запись
    <td><input type="file" name="logo" value="<?php echo $_FILES['logo']['name']; ?>">загрузить</td>

не верна?

  Ответить  
 
 автор: Василий   (04.01.2012 в 17:01)   письмо автору
 
   для: cheops   (04.01.2012 в 16:46)
 

$error = 'Случилось что-то непонятное'; "

выводится - Случилось что-то непонятное

  Ответить  
 
 автор: Slo_Nik   (04.01.2012 в 16:55)   письмо автору
 
   для: 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
     // и если содержит сообщение об успешной загрузке файл - создавать запрос и писать в базу
    


это как вариант решения задачи, а их может быть несколько

  Ответить  
 
 автор: cheops   (04.01.2012 в 16:46)   письмо автору
 
   для: Василий   (04.01.2012 в 16:44)
 

Просто смотреть, будет ли пользователь загружать файл, если поля массива $_FILES['logo'] заполнены, значит, пользователь пытается заменить файл, действуйте по алгоритму, описанному постом выше. Если поля пусты, значит он хочет, чтобы файл остался старым и ничего с ним делать не нужно.

  Ответить  
 
 автор: Василий   (04.01.2012 в 16:44)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 16:40)
 

так как надо то?

  Ответить  
 
 автор: cheops   (04.01.2012 в 16:44)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 16:40)
 

Да согласен, это невозможно. Нужно просто при попытке изменить файл, удалять старый и загружать новый. Здесь ни браузер с сервером, ни PHP не предоставляют автоматический код, все эти операции придется программировать вручную.
1) Проверить загружается ли файл
2) Если загружается, удалить старый
3) Поместить на его место новый
4) Исправить запись в базе данных

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования