PHP: class FileImg { const TRUTYPE = ['image/jpeg']; public function __construct ($name, $loadDir){ $this->name = $name; $this->size = $name . ['size']; $this->type = $name . ['type']; $this->tmp = $name . ['tmp_name']; $this->error = $name . ['error']; $this->loadDir = $loadDir; } function GetError () { try { if (in_array($this->type, self::TRUTYPE)) { throw new Exception ('Ошибка типа'); } } catch (Exception $alert) { $this->error = $alert->getMessage(); } } }
Откуда нам знать? Ты напиши, что ты ожидаешь, и что получаешь. И тогда будет о чем разговор вести. А пока, по принципу каков вопрос - таков ответ, я тебе отвечу так - "хз".
Получаю данные с массива $_FILES, ожидаю присвоить значения свойствам класса и провести дальнейшую обработку: тип загружаемого файла, размер, способ получения.
Нет ошибки, просто один человек сказал, что я не умею работать с массивами, я учусь и хочу понять в чем проблема.
ну пойди посмотри как выглядят массивы и посмотри на свой код. Возможно даже тебе станет стыдно --- Добавлено --- тут проблема в твоей лени и не желании погуглить минуту
$name . ['size'] точку убери --- Добавлено --- 1) сейчас бы надеяться на типы с переменной FILES 2) ты тип поставил чтобы загружались только jpeg имг. Что в условии вижу - если имг jpeg типа то ошибка. Ебнуться вобщем 3) if ( !in_array ... ) --- Добавлено --- 4) все уже отточено тут https://github.com/MouseZver/My-garbage-code/tree/master/upload_class
Да не лень мне, я просто хотел их соединить через конкатенацию, я представляю как выглядит ассоциативный массив. Я учусь и делаю ошибки, ток кто ничего не делает, тот и не ошибается. Просто иногда у меня возникает странное чувство, что я просто полный ишак, а все остальные с 1 недели пишут идеальный код. --- Добавлено --- Спасибо за совет, да я понимаю, что мой код полное говно. Но я пока не могу написать лучше, блин ну реально не получается пока лучше, я ООП начал изучать неделю назад, Я помню, Вы 4 недели назад скидывали, просто всеми силами старался догнать сам, буду изучать ваше решение.
$_FILES['userfile']['type'] Этот mime-тип не проверяется в PHP, так что не полагайтесь на его значение без проверки https://php.ru/manual/function.getimagesize.html Не используйте getimagesize() для проверки того, что файл является файлом с изображением. Для этих целей используйте расширение Fileinfo.
Спасибо за совет, да я понимаю, что мой код полное говно. Но я пока не могу написать лучше, блин ну реально не получается пока лучше, я ООП начал изучать неделю назад, Я помнюб Спасибо большое! Это все задачи для себя, многое не знаю вот и получается так.
код можно описать разным способом, лишь бы логика была верна загрузка конфигурации директория для сохранения файлов проверка на существовании ее название массива присланный с $_FILES по определению <input type="file" name="доширак"> валидация $_FILES[доширак] Задаем имя выходного файла консервируем изображение валидация всех входных данных рыгаем и стопорим дальнейшее действие скриптаиначе узнаем по типу, расширение файла юзаем ImageCreateFrom...расширение ресамлируем от говна ImageCopyResampled Image...расширение сохраняем вывод имя с расширением файла
Конкатенация - соединение строк Причём тут массивы? Самое интересное - конкатенация массивов сработает в php, поскольку у него скрытое преобразование типов, и он преобразует массивы в строки. Но, при преобразовании массива в строку он просто превращается в слово Array, так что в твоём случае, в зависимости от того, что ты передаёшь в $name, у тебя будет одно или два слова Array во всех этих полях. Подозреваю, что это не тот результат, который ты пытаешься получить
Спасибо, я знал про динамическую типизацию, но я пока все выученное не могу достойно применять Так что, если публика не возражает, потерпите уж мои беспощадные творения
Значит, то, что выучено, было не понято. Так что пересмотри работу с массивами ещё раз, и непонятные теоретические вопросы сразу спроси. Если бы ты понимал массивы, и что зачем делается, такой бы бред в голову тебе не пришёл. Так что, поняв, ты сэкономишь прежде всего своё время. Вот отложи пока ООП с файлами, порешай задачи отсюда на массивы: http://www.itmathrepetitor.ru/zadachi-po-php-cikly-i-massivy/ Не пользуйся стандартными функциями, где они есть, а порисуй велики, для общего развития. Понятно, что в реальной программе применяют стандартные функции, но для развития алгоритмического мышления полезно велики писать
--- Добавлено --- Иди от простого к сложному. Ты не умеешь даже с массивами работать, зачем лезть в ооп? Школота
Делать наоборот сегодня норма. Человек сначала качает какой-нибудь быдлопресс и начинает "учить пхп по готовому коду, чтобы быстрее разобраться". Тоже не зная основ. Все равно что учить китайский по оригинальным образцам поэзии династии Хрень.
Этот пункт вычеркни, если хочешь действительно чему-то научиться и стать программистом, а не попугайчиком-перепечаточником.
сижу лентяйничаю, фильмы ужастики качаю, пользуюсь гуглом, троллю пхп.ру --- Добавлено --- школьник у тебя в штанах! Кенгуру
Буду крайне признателен если кто-то подскажет более правильный вариант развития. Просто на данный момент я не знаю других способов.
Ну вот там есть полное описание синтаксиса языка, со всеми возможностями, хотя бы по разу это прочитано? https://secure.php.net/manual/ru/langref.php