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

Форум PHP

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

 

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

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

тема: Наиболее эффективный способ отправки картинок на web-сайт и добавления новой записи в базу данных

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

 
 автор: Степан   (23.06.2009 в 09:42)   письмо автору
 
   для: Петр   (17.06.2009 в 12:24)
 

Спасибо всем за помощь! Вроде бы разобрался.

  Ответить  
 
 автор: Петр   (17.06.2009 в 12:24)   письмо автору
 
   для: Степан   (17.06.2009 в 10:19)
 


Оригинальное имя файла на компьютере клиента
$_FILES['userfile']['name']
Mime-тип файла, в случае, если браузер предоставил такую информацию
$_FILES['userfile']['type']
Размер в байтах принятого файла
$_FILES['userfile']['size']
Временное имя, с которым принятый файл был сохранен на сервере
$_FILES['userfile']['tmp_name']
Код ошибки, которая может возникнуть при загрузке файла
$_FILES['userfile']['error']


Отправляем файл на сервер, формируем для него имя (например UNIX-метка времени - количество пройденых секунд с 01.01.1970), записываем информацию о нем в БД. Если планируется добавлять много файлов одновременно или предусмотрена загрузка разными пользователями, то к метке времени прибавить номер.

Другой способ:
Сначала загружаем файл, записываем информацию о файле в БД, потом определяем ID последней записи, а затем уже перемещаем файл из временной директории в нужную (под нужными именем ID)

  Ответить  
 
 автор: Trianon   (17.06.2009 в 11:57)   письмо автору
 
   для: Степан   (17.06.2009 в 10:19)
 

Получить можно из массива $_FILES[]
Правда несовсем понятно, зачем они на сервере (в БД или нет - неважно) нужны...
Но тем не менее клиентское имя файла можно получить из этого массива всяко.

  Ответить  
 
 автор: Степан   (17.06.2009 в 10:19)   письмо автору
 
   для: Trianon   (16.06.2009 в 13:12)
 

Я понял Вашу мысль. Но подскажите, пожалуйста, каким образом можно получить данные об имени файла для внесения в базу данных при отправке его на сервер?

  Ответить  
 
 автор: Trianon   (16.06.2009 в 13:12)   письмо автору
 
   для: Степан   (16.06.2009 в 12:57)
 

возможно и присваивает. Но из уже принятых данных формы ($_FILES - массив принятых через форму файлов)
А у Вас эта переменная используется при создании формы - то есть всяко до момента отправки данных этой формой.

  Ответить  
 
 автор: Степан   (16.06.2009 в 12:57)   письмо автору
 
   для: Trianon   (16.06.2009 в 12:42)
 

Извините, но разве строка
$full_name = "images/painting/" .$_FILES["file_upload"]["name"];
не присваивает значение переменной?

  Ответить  
 
 автор: Trianon   (16.06.2009 в 12:42)   письмо автору
 
   для: Степан   (16.06.2009 в 12:18)
 

Очевидно потому что соответствующей переменной никто не присвоил значения.
Включите вывод нотайсов - убедитесь сами.
error_reporting(E_ALL|E_NOTICE);

  Ответить  
 
 автор: Степан   (16.06.2009 в 12:18)   письмо автору
 
   для: Trianon   (16.06.2009 в 11:48)
 

>очевидно скрытое поле формы fullname2 является пустым в момент отправки формы.
>
>PS. фрагменты html и php-кода принято брать в теги [code] затем, чтоб текст было легче читать.
>Ы?


Очевидно, но почему оно пустое?

  Ответить  
 
 автор: Trianon   (16.06.2009 в 11:48)   письмо автору
 
   для: Степан   (16.06.2009 в 09:07)
 

очевидно скрытое поле формы fullname2 является пустым в момент отправки формы.

PS. фрагменты html и php-кода принято брать в теги [code] затем, чтоб текст было легче читать.
Ы?

  Ответить  
 
 автор: Степан   (16.06.2009 в 09:07)   письмо автору
 
   для: Slo_Nik   (15.06.2009 в 16:50)
 

>приведи, пожалуйста, код формы и как ты делаешь запрос к базе данных

код формы:

<form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="file_upload" id="file_upload">
<p>
<input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="655360" />
</p>
<p align="left">Файл: </p>
<p align="left">
<label>
<input name="file_upload" type="file" id="file_upload" />
<br />
<br />
Название:<br />
<br />
</label>
<input name="title2" type="text" id="title2" />
</p>
<p align="left">
<label>
<input type="submit" name="Submit" value="Отправить файл на сервер" />
</label>
<input name="id2" type="hidden" id="id2" value="<?php echo $row_pictures['id']; ?>" />
<input name="fullname2" type="hidden" id="fullname2" value="<?php echo $full_name; ?>" />
<input name="nameid2" type="hidden" id="nameid2" value="<?php echo $row_name['id']; ?>" />
</p>
<input type="hidden" name="MM_insert" value="file_upload">
</form>


Insert Record:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "file_upload")) {
$insertSQL = sprintf("INSERT INTO painting (id, title, fullname, nameid) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['id2'], "int"),
GetSQLValueString($_POST['title2'], "text"),
GetSQLValueString($_POST['fullname2'], "text"),
GetSQLValueString($_POST['nameid2'], "int"));

mysql_select_db($database_Guest, $Guest);
$Result1 = mysql_query($insertSQL, $Guest) or die(mysql_error());
}

  Ответить  

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

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

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