|
|
|
| Доброго дня! Требуется подсказка. Есть две таблицы vars и imgs. В форме пока заполняются данные в vars, предлагается загрузить фото, нажимаем на кнопку "Загрузить", открывается окно для выбора и загрузки фото, но запись в vars ещё не закончена, т.е. Id ещё нет, для записи var-id в тбл imgs. Подскажите как быть в этой ситуации. | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 15:16)
| | нет ясности в вашем объяснении | |
|
|
|
|
|
|
|
для: Valick
(03.02.2016 в 15:20)
| | На сервер загружаются фото, их имена заносятся в таблицу imgs, они относятся к одной записи в тбл vars, т.е. в imgs должен быть код var_id для связи с записью, но записи ещё нет потому что она завершается после загрузки фото. Каким лучше способом организовать запись? | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 15:30)
| | что мешает загрузить фото на сервер, сделать запись в таблицу vars, а потом записывать в БД информацию о фото в таблицу imgs? (надеюсь у вас там только пути к фото , а не сами фото) | |
|
|
|
|
|
|
|
для: Valick
(03.02.2016 в 15:58)
| | >что мешает загрузить фото на сервер, сделать запись в таблицу vars, а потом записывать в БД информацию о фото в таблицу imgs? (надеюсь у вас там только пути к фото , а не сами фото)
А пути сохранить в переменную, через конкатенацию? или массив? не знаю как это делать. Есть пример какой нибудь? | |
|
|
|
|
|
|
|
|
для: Valick
(03.02.2016 в 17:23)
| | Всё это я перелопатил и как загружаются фото знаю, а как заносить их в БД и связать с нужной записью нигде не найду. | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 15:30)
| | Зачем грузить в отдельном окне, что мешает в одной форме все сделать? | |
|
|
|
|
|
|
|
для: elenaki
(03.02.2016 в 16:59)
| | Фоток загружается как правило несколько или вобще не загружается(не всегда надо). | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 17:18)
| | Если возможна ситуация, когда фоток вообще не будет, то что мешает создать строку в vars сразу, не дожидаясь загрузки фоток?
А потом, при необходимости добавлять строки в imgs, и опять же если нужно - модифицировать поля уже имеющейся строки в vars? | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 17:18)
| | Я скриптом добавляю поля для загрузки файлов (для админа - сколько угодно, для юзера - не больше пяти). При обработке формы проверяю, есть ли файлы, если есть, то в цикле их загружаю и вставляю пути в базу (уже после того, как запись самого объявления закончена и известен его id). | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 15:16)
| | Тут многое зависит от того какие условия определяются задачей "загрузить фото". | |
|
|
|
|
|
|
|
для: confirm
(03.02.2016 в 17:45)
| | Попробую сформулировать: пути несколько загруженных фоток вносятся в некую переменную, а при sabmit в форме записываются в таблицу imgs, связанные по id с записью в таблице vars.
Как это реализовать пока не знаю. | |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 18:18)
| | Не то. Если файлы загружаются и при этом при ошибках загрузки сервер не реагирует на них, то это одно, но если сервер обязан реагировать на них, то это будет уже иное. | |
|
|
|
|
|
|
|
для: confirm
(03.02.2016 в 18:34)
| | Типа этого?
<?php
$uploaddir = 'images/fs/';
$apend=date('YmdHis').rand(100,1000).'.jpg';
$uploadfile = "$uploaddir$apend";
if(($_FILES['userfile']['type'] == 'image/gif' || $_FILES['userfile']['type'] == 'image/jpeg' || $_FILES['userfile']['type'] == 'image/png') && ($_FILES['userfile']['size'] != 0 and $_FILES['userfile']['size']<=3145728))
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
$size = getimagesize($uploadfile);
if ($size[0] < 1501 && $size[1]<1501)
{
// если размер изображения не более 1500 пикселей по ширине и не более 1500 по высоте
echo "Файл загружен. Путь к файлу: <b>http:/yoursite.ru/".$uploadfile."</b>";
echo "<img src=$uploadfile width=100 height=100>";
} else {
echo "Загружаемое изображение превышает допустимые нормы (ширина не более - 500; высота не более 1500)";
unlink($uploadfile);
}
} else {
echo "Файл не загружен, вернитеcь и попробуйте еще раз";
}
} else {
echo "Размер файла не должен превышать 3Мб";
}
?>
|
| |
|
|
|
|
|
|
|
для: Sshell
(03.02.2016 в 19:19)
| | Использовать getimagesize() и при этом проверять тип как $_FILES['userfile']['type'] == 'image/gif' || ..., это глупо.
Сперва проверяется ключ error массива FILES, и только при отсутствие ошибки производятся действия. Да и речь идет о загрузке не файла, а файлов. Если при получении формы еще проверяются по условиям и данные формы, то надо ли говорить о том, что возможны ситуации: а) файлы загружены без ошибок и по условиям, но данные формы не отвечают условиям , б) файлы загружены с ошибками, данные нет, в) и файлы и данные имеют ошибки.
Нужен диалог, нужно временное хранение файлов на сервере, чем может являться сессия, как в случае а), чтобы не заливать их на сервер повторно, так и пока не получим id записи. | |
|
|
|