Спустя 17 минут, 16 секунд (18.07.2011 - 14:38) bulgakov написал(а):
Бери бумажку и ручку и пиши подробно что ты хочеш делать с помощью этого класса, какие методы и свойства.
Спустя 3 минуты, 43 секунды bulgakov написал(а):
Например конструктор класса у тебя должен принимать путь к файлу который нужно загрузить и присваивать его свойству класса, потом какой-то метод класса проверяет файл и если это картинка загружает в какую-то директорию одновременно занося в базу путь этого файла.
Спустя 3 минуты, 43 секунды bulgakov написал(а):
Например конструктор класса у тебя должен принимать путь к файлу который нужно загрузить и присваивать его свойству класса, потом какой-то метод класса проверяет файл и если это картинка загружает в какую-то директорию одновременно занося в базу путь этого файла.
Спустя 52 минуты, 26 секунд (18.07.2011 - 15:30) m4a1fox написал(а):
Так-с бумажку и ручку взял. Сейчас напишу.
Спустя 3 минуты, 2 секунды m4a1fox написал(а):
Ну в принципе, не много-то и пунктов. Всего 3
Пока что хватит и этого... Дальше будет виднее.
Спустя 16 минут, 16 секунд m4a1fox написал(а):
Даже не знаю с чего начать......
Спустя 3 минуты, 2 секунды m4a1fox написал(а):
Ну в принципе, не много-то и пунктов. Всего 3
- 1. Загрузка изображения в папку.
- 2. Создание уменьшенной копии
- 3. Добавление путей в таблицу
Пока что хватит и этого... Дальше будет виднее.
Спустя 16 минут, 16 секунд m4a1fox написал(а):
Даже не знаю с чего начать......
Спустя 20 минут, 28 секунд (18.07.2011 - 15:51) neadekvat написал(а):
Для начала закрыть форум. Правда. Хватит уже тут торчать - бери и делай. Хоть что-нибудь. Пусть потом этот класс разнесут в пух и прах - но он будет твой.
Спустя 8 минут, 24 секунды (18.07.2011 - 15:59) m4a1fox написал(а):
neadekvat
Убедительно!
Убедительно!
Спустя 1 час, 51 минута, 23 секунды (18.07.2011 - 17:50) m4a1fox написал(а):
neadekvat и все все все... Как и общали, давайте в пух и прах. Итак.
Банальщина - это понятно. Простая загрузка без каких либо проверок. Собственно интересует вот что.
вот тут
Наверняка можно избавиться от ["filename"]["tmp_name"], заменив их неким образом. Не могу сообразить каким? Не подскажите?????
class DownloadImage extends connect_Db {
static private $path = 'img/';
function MoveFile($file) {
if(is_uploaded_file($file["filename"]["tmp_name"]))
{
move_uploaded_file($file["filename"]["tmp_name"],
"".self::$path."/".$file["filename"]["name"]);
$true = 'Image is download sucsessful.<br />
<a href="'.self::$path.'/'.$file["filename"]["name"].'">
<img src="'.self::$path.'/'.$file["filename"]["name"].'" width="20px" height="20px"></a>';
} else {
$true = 'wrong';
}
return $true;
}
}
$upload = new DownloadImage;
Банальщина - это понятно. Простая загрузка без каких либо проверок. Собственно интересует вот что.
вот тут
$file["filename"]["tmp_name"]
Наверняка можно избавиться от ["filename"]["tmp_name"], заменив их неким образом. Не могу сообразить каким? Не подскажите?????
Спустя 2 часа, 2 минуты, 45 секунд (18.07.2011 - 19:53) neadekvat написал(а):
1. Про свое отношение к extends connect_Db я уже говорил. Резко отрицательное.
2.
Зачем static?
Плюс советовал бы использовать protected, а не private, иначе свойства не будут доступны при наследовании, а ООП собственно ради наследования создавался.
3. Почему у метода не указан модификатор доступа? Если по умолчанию - public, это еще не значит, что можно опускать ключевое слово.
4. Подход неверный: обычная процедурка, обернутая в класс. Пусть класс лучше возвращает имя загруженного файла или false в случаи неудачи, а уже код, который использует класс - пусть как хочет с этим работает.
5. Возвращаемый адрес должен быть позиционирован абслютно, а не относительно.
6. В метод лучше передавать не массив _FILES, а только имя индекса в этом массиве, раз уж все равно класс завязан на нем:
function MoveFile($index)
{
echo $_FILES[$index]['name'];
}
7. При загрузке имя файла лучше менять на какой-нибудь рандомный набор цифр и букв, при этом не забыв убедиться, что такого файла не существует.
2.
static private $path = 'img/';
Зачем static?
Плюс советовал бы использовать protected, а не private, иначе свойства не будут доступны при наследовании, а ООП собственно ради наследования создавался.
3. Почему у метода не указан модификатор доступа? Если по умолчанию - public, это еще не значит, что можно опускать ключевое слово.
4. Подход неверный: обычная процедурка, обернутая в класс. Пусть класс лучше возвращает имя загруженного файла или false в случаи неудачи, а уже код, который использует класс - пусть как хочет с этим работает.
5. Возвращаемый адрес должен быть позиционирован абслютно, а не относительно.
6. В метод лучше передавать не массив _FILES, а только имя индекса в этом массиве, раз уж все равно класс завязан на нем:
function MoveFile($index)
{
echo $_FILES[$index]['name'];
}
7. При загрузке имя файла лучше менять на какой-нибудь рандомный набор цифр и букв, при этом не забыв убедиться, что такого файла не существует.
Спустя 29 минут, 33 секунды (18.07.2011 - 20:23) Haotarez написал(а):
Цитата |
$true = 'Image is download sucsessful.<br /> <a href="'.self::$path.'/'.$file["filename"]["name"].'"> <img src="'.self::$path.'/'.$file["filename"]["name"].'" width="20px" height="20px"></a>'; |
Аж глаз дёргается когда я вижу в php классе html
Спустя 17 часов, 45 минут, 45 секунд (19.07.2011 - 14:09) m4a1fox написал(а):
neadekvat
Цитата |
5. Возвращаемый адрес должен быть позиционирован абслютно, а не относительно. |
не понятно как это....
Спустя 7 минут, 40 секунд (19.07.2011 - 14:16) alex12060 написал(а):
m4a1fox
Опять 1 метод в классе
Смотри как надо - http://code.google.com/p/proquiz/source/br...d.class.php?r=4
Шучу
Тут слишком много понтов.
Если ты не можешь логику собрать для себя, то поищи в гугле вот по такому запросу:
inurl:upload.class.php
Опять 1 метод в классе

Смотри как надо - http://code.google.com/p/proquiz/source/br...d.class.php?r=4
Шучу

Тут слишком много понтов.
Если ты не можешь логику собрать для себя, то поищи в гугле вот по такому запросу:
inurl:upload.class.php
Спустя 12 минут, 36 секунд (19.07.2011 - 14:29) m4a1fox написал(а):
alex12060
Не не не не.... ну не могу я сразу их все написать. Помаленьку надо!
Не не не не.... ну не могу я сразу их все написать. Помаленьку надо!
Спустя 1 минута, 18 секунд (19.07.2011 - 14:30) m4a1fox написал(а):
alex12060
Цитата |
Смотри как надо - http://code.google.com/p/proquiz/source/br...d.class.php?r=4 |
Круто однако! Слишком много кода.....)
Спустя 4 часа, 13 минут, 57 секунд (19.07.2011 - 18:44) neadekvat написал(а):
Цитата (m4a1fox @ 19.07.2011 - 15:09) |
не понятно как это.... |
А все остальное было понятно?
Относительный путь: src="img/pic.png"
Абсолютный: src="/img/pic.png" - от корня сайта, src="http://example.com/pic.png" - с адресом сайта.
Спустя 53 секунды (19.07.2011 - 18:45) m4a1fox написал(а):
neadekvat
А! Черт! теперь понятно! Просто что то сначала даже и не подумал что вы об этом!
А! Черт! теперь понятно! Просто что то сначала даже и не подумал что вы об этом!
Спустя 1 минута, 16 секунд (19.07.2011 - 18:46) m4a1fox написал(а):
neadekvat
Цитата |
А все остальное было понятно? |
Впринципе - да! только от пункта №4 решил отказаться!
Цитата |
4. Подход неверный: обычная процедурка, обернутая в класс. Пусть класс лучше возвращает имя загруженного файла или false в случаи неудачи, а уже код, который использует класс - пусть как хочет с этим работает. |
Спустя 1 час, 19 минут, 17 секунд (19.07.2011 - 20:05) neadekvat написал(а):
Цитата (m4a1fox @ 19.07.2011 - 19:46) |
только от пункта №4 решил отказаться! |
Да бляха муха, что значит "решил октазаться"?! Это вообще по сути самое главное!
То, что ты делаешь - полный бред, это не ООП, это процедурка в классе. Класс, возвращающий html - это просто абзац.
Я уже не раз говорил - либо берись всерьез, либо не берись: не твое значит, раз сложно, непонятно, лень и прочее.
Спустя 13 часов, 1 минута, 59 секунд (20.07.2011 - 09:07) m4a1fox написал(а):
Тогда сам смысл в классе пропадает, если он будет возвращать только название файла, а работа с файлом будет в другой части... Не легче все совместить. Я не совсем понимаю. Смысл же классов, это общие методы для работы с неким объектом. В моем случае - объект - картинка, в классе в методах идет проверка на пустоту, на корректность форматов, на изменение имени и так далее, и затем в том же классе - метод добавления картинки в папку... А вы предлагаете метод именно с закачкой картинки вынести в файл с применением класса... Вот что мне не понятно!
Спустя 3 часа, 3 минуты, 56 секунд (20.07.2011 - 12:11) neadekvat написал(а):
m4a1fox, нет, я говорю, что класс (т.е. все входящие в него методы) не должны возвращать html-код.
Вместо
должно быть что-то такое:
А уж код, который получит это, пусть хоть что с этим делает - хоть в базу, хоть на экран выводит, хоть тупо проигнорирует, уже не важно.
Вместо
$true = 'Image is download sucsessful.<br />
<a href="'.self::$path.'/'.$file["filename"]["name"].'">
<img src="'.self::$path.'/'.$file["filename"]["name"].'" width="20px" height="20px"></a>';
return $true;
должно быть что-то такое:
$addr = $this->path .'/'. $file["filename"]["name"];
return $addr;
А уж код, который получит это, пусть хоть что с этим делает - хоть в базу, хоть на экран выводит, хоть тупо проигнорирует, уже не важно.
Спустя 15 минут, 11 секунд (20.07.2011 - 12:27) m4a1fox написал(а):
neadekvat
да так и думал! спасибо за направление!
да так и думал! спасибо за направление!