|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 22:30)
| | Ага... понял...
Ещё раз СПАСИБО!!! | |
|
|
|
|
|
|
|
для: sega_z
(11.01.2012 в 22:26)
| | вызывается тем, что после загрузки файла автоматически удаляется временный файл, а Вы пытаетесь в этой строке к нему обратиться
после загрузки файла надо работать с уже новым именем файла | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 21:54)
| | Не могу понять, чем вызвана данная ошибка?! | |
|
|
|
|
|
|
|
для: sega_z
(11.01.2012 в 21:28)
| | если Вы используете move_uploaded_file(), то ошибка возникает в этой строке
<?php // Создание маленького изображения №1
$size1 = getimagesize($_FILES['foto1']['tmp_name']);
|
дальше по коду эта ошибка вызывает другие... | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 21:25)
| | Странно... Все другие ошибки я вижу, а эти нет!
Вы можете сказать, где и в какой момент отображаются ошибки?
Что именно вызывает ошибку? | |
|
|
|
|
|
|
|
для: sega_z
(11.01.2012 в 20:19)
| | конечно же влияют
если у Вас включен вывод ошибок , то и Вы их должны видеть | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 19:34)
| | Спасибо за советы!
Что за ошибки выдаются при создании маленького изображения?
Или они не влияют на общий результат? | |
|
|
|
|
|
|
|
для: SerG7
(11.01.2012 в 19:40)
| | добавлю к вышесказанному.
проверьте атрибут тека form
должно быть так
<form method="post" enctype="multipart/form-data"> | |
|
|
|
|
|
|
|
для: sega_z
(11.01.2012 в 19:27)
| | move_uploaded_file() работает ТОЛЬКО с файлами загруженными по протоколу HTTP POST | |
|
|
|
|
|
|
|
для: sega_z
(11.01.2012 в 18:58)
| | проверил, файл загружается, есть ошибки при создании маленького изображения....
у Вас наверное отключён вывод ошибок в браузер...
Но, файл грузится это точно.
Теперь вот какая фигня получается...
1) Имя файла загруженного 0.51877800 1326295395.jpg, в комментарии к скрипту написано, что берётся временная метка, чтобы имя было уникальным.
Согласен, но читать такое имя сложно.
Для формирования нового имени я бы предложил
$new_name = date("YmdHis", time());
|
так по крайней мере в имени файла будет понятная для человека временная метка, а именно
ГодМесяцДеньЧасМинутаСекунда.jpg
Вот это я бы тоже исключил
<?php
copy($_FILES['foto1']['tmp_name'], $uploadfoto1);
if(preg_match('/[.](GIF)|(gif)$/',$filename1))
{
$im = imagecreatefromgif($uploadfoto1) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/',$filename1))
{
$im = imagecreatefrompng($uploadfoto1) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/',$filename1))
{
$im = imagecreatefromjpeg($uploadfoto1); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
?>
|
В документации советуют избегать применение рег. Выражений без особой нужды
этот участок кода можно переписать так
<?php
list($x, $y, $type) = getimagesize($i_path); // высота, ширина и тип mime исходного изображения
// получается, что если $type == 1 то это gif изображение, если $type == 2 то jpg и так далее...
// подробно о функции getimagesize() смотрите в руководстве пользователя по php
switch($type){
case 1 : $image = imagecreatefromgif($i_path); break;
case 2 : $image = imagecreatefromjpeg($i_path); break;
default : $image = imagecreatefrompng($i_path);
}
?>
|
Получается что всё то, что после copy() надо выполнять после того, как будет подтверждение того, что файл загружен.
в целях безопасности рекомендуют использовать move_uploaded_file()
вот что должно быть
<?php
/* предыдущий код */
if(move_uploaded_file()){
/* тут выполняется код по уменьшению файла и записи имени в базу данных */
}
else{
jecho "Ошибка при загрузке файла";
}
|
| |
|
|
|
|