<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Загрузка аватарки
20.11.2013 11:29:01 Загрузка аватарки Сообщение #1
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

Делаю загрузку аватарок на сайт. Делаю проверки на имя, разширение и размер. У самого денвера как я понял стоит ограничение 8 мб.

Начинаю проверять - все отлично , но стоит мне к примеру выбрать файл с размером 140 метров( я выбрал видеофайл) он тупит и просто переходит на страницу обработчика(functions.php). Передаю все по POST - он пустой.

Смысл басни такова - хочу чтобы он попадал на проверку размера и разрешения, а не пустую страницу выдавал

как реализовать?
Профиль Ответить
20.11.2013 12:07:15 Загрузка аватарки Сообщение #2
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Здравствуйте LLIMATKO. Чтобы реализовать загрузку видео большого объема (>100mb) , необходимо прежде всего правильно сконфигурировать настройки php в php.ini:

php_value upload_max_filesize 500M
php_value post_max_size 500M
php_value max_execution_time 1000
php_value max_input_time 1000


Расскажу поподробнее об этих четырех параметрах, которые мы использовали выше. Первый - содержит максимальный размер файла загрузки на сервер, второй параметр отвечает за наибольший размер отправляемых данных, третий за максимальное время выполнение скриптов и четвертый - за максимальное время приема данных на сервер.

Так же, если у Вас Apache, потребуется установить 64-bit Apache и установить в параметре LimitRequestBody значение ноль.

LimitRequestBody = 0

То есть отсутствие лимита.

Если у Вас сервер Nginix, добавьте такой вот блок кода в nginx.conf в блок http :

{ client_max_body_size 500m; }

Это должно Вам помочь.
Профиль Ответить
20.11.2013 12:51:12 Загрузка аватарки Сообщение #3
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

я в итоге хочу чтобы выводилась ошибка, я вас понял и делал именно так, но если сам пользователь выберет файл, который выше лимита, то он попадает в обработчик, а должна быть ошибка. Это возможной реализовать? без увеличения этих 4х параметров
Профиль Ответить
20.11.2013 13:00:26 Загрузка аватарки Сообщение #4
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Конечно возможно, напишите условие, которое будет проверять какого размер файл и если больше допустимого, будет выдавать ошибку.
Профиль Ответить
20.11.2013 13:04:42 Загрузка аватарки Сообщение #5
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

вы не поняли.

Условие стоит на размер - ошибку выдает (условие 100 метров).
В денвере я поставил ограничение к примеру 200 метров.
выбираю файл размер 101 метр - выдает ошибку, а если , к примеру. пользователь нечаенно выбрал файл с очень большим размером - к примеру фильм, бывает так тыкнул не туда, то он ошибку не выдает, т.к. у денвера стоит ограничение 200 метров, а посылает пользователя в обработчик. который пустой. Пользователь скажет, что сайт фигня и уйдет.
А хочется чтобы и в этом случае выдал ошибку
Профиль Ответить
20.11.2013 13:20:49 Загрузка аватарки Сообщение #6
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Поставьте тогда нужное ограничение в Denwer'e. Но учтите, что на хостинге, у Вас не будет Denwer'а. Так же, можно сделать дополнительное условие, которое будет проверять расширение файла, поставить ограничение допустим только на загрузку картинок в формате .jpg,jpeg,gif,bmp,png и т.д
Профиль Ответить
20.11.2013 15:23:49 Загрузка аватарки Сообщение #7
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

поставил я ограничение 1гб, а человек нечаенно или умышленно выбрал место изображения фимльм с размером в 4гб и опять двадцать пять. Шанс всегда остается, вот и хтелось бы это обойти
Профиль Ответить
20.11.2013 15:29:14 Загрузка аватарки Сообщение #8
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

При загрузке файла в массиве $_FILES возвращается и размер файла и тип загружаемого файла. Так что достаточно задать переменную-массив с предполагаемыми форматами для загрузки и переменную с максимальным размером и проверять на соответствие этим значениям.

Например:

$types = array('image/gif', 'image/png', 'image/jpeg', 'image/pjpeg');
if (!in_array($_FILES['file']['type'], $types)){
echo 'Недопустимый тип файла. Допустимо загружать только изображения: *.gif, *.png, *.jpg';
}
Аналогично с размером.
Профиль Ответить
21.11.2013 08:15:06 Загрузка аватарки Сообщение #9
LLIMATKO

LLIMATKO

Эксперт

Эксперт

Дата регистрации:
12.02.2013 15:31:03

Сообщений: 129

а вот проверьте сами свою методику, у меня именно так и стоит на данный момент. поставьтее в денвере к примере 8 мб и загрузите файл с размером 1гб. ошибку он не выдаст
Профиль Ответить
13.12.2013 20:35:32 Загрузка аватарки Сообщение #10
tanysha86

tanysha86

Новичок

Новичок

Дата регистрации:
15.10.2013 23:32:05

Сообщений: 4

Добрый день Михаил!
Пожалуста ответьте на такой вопрос:
хочу сделать гостевую книгу с возможностью загрузки аватарки.
В файле index подключаюсь к классу Upload, проверяю, если подключение есть
запускаю на выполнение ф-цию uploadFile($file) класса Upload (для назначения имени и загрузки аватарки), по примеру вашего видео на блоге myrusakov.
А дальше пытаюсь через return вернуть название аватарки файлу index, чтобы в дальнейшем его использовать.
А теперь вопрос почему return не возвращает index - $name_avatar;
Вот пример куска файла index

if ($_POST["reg"]){
require_once "lib/upload_avatar.php";
$upload_avatar=new Upload_avatar();
$avatar_user=$upload_avatar->uploadFile($_FILES["avatar"]);
echo $name_avatar;
if ($avatar_user) {
$setavatar=$user->setAvatar($login, $name_avatar);
if ($avatar_user) { echo "</br>Аватар успешно загружен</br>".$name_avatar;
}
else echo "</br>ОШИБКА при загрузке аватара1</br>";
}
else echo "</br>ОШИБКА при загрузке аватара2</br>";

и файла с классом Upload

public function uploadFile($file) {
if (!$this->isSecurity($file)) return false;
$name_avatar=md5(microtime()).".".substr($file["type"], strlen("image/");
$uploadfile=$this->dir."/".$name_avatar;
if (move_uploaded_file($file["tmp_name"], $uploadfile)) {
//$this->setAvatar($login, $name_avatar);
//echo "</br>Аватар успешно загружен в папку</br>".$name_avatar."ура";
return $name_avatar;
}
else return false;
}
Профиль Ответить