TyTuKeT
Участник
- Сообщения
- 219
- Реакции
- 37
Имеется данный модуль. Вся проблема в том что при выборе изображения, оно загружается и переименовывается в md5 и становится черным просто черным квадратом, в то время когда оригинал лежит рядом не тронутым. Переименовывается понятно почему, что бы не было дубликата названия и так же изображение сжимается по размерам. Вопрос почему оно становится черным квадратом? Распространяется на все форматы изображения.
PHP:
<div class="s-bk-lf">
<div class="acc-title">Настройки</div>
</div>
<center><div class="silver-bk">
<div class="clr"></div>
<?
if (isset($_FILES['file'])) {
$f_err = 0; //вспомогательная переменная
$types = array(
'.jpg',
'.JPG',
'.jpeg',
'.gif',
'.png'
); //поддерживаемые форматы загружаемых файлов
$max_size = 502050; //максимальный размер загружаемого файла (5000-МБ)
$path = 'avatar/'; //директория для загрузки
$path_mini = 'avatar/'; //директория для загрузки миниатюры
$fname = $_FILES['file']['name'];
//$fname = md5($fname);
$ext = substr($fname, strpos($fname, '.'), strlen($fname) - 1); //определяем тип загружаемого файла
//проверка на соответствие формата
if (!in_array($ext, $types)) {
$f_err++;
$mess = '<p style="color:red;">Загружаемый файл не является картинкой</p>';
}
//проверка размера файла
if (filesize($_FILES['file']['tmp_name']) > $max_size) {
$f_err++;
$mess = '<p style="color:red;">Размер загружаемой картинки превышает 5 Мб</p>';
}
//если файл успешно прошел проверку
//перемещаем его в заданную директорию из временной
if ($f_err == 0) {
move_uploaded_file($_FILES['file']['tmp_name'], $path . $fname);
//путь к загруженному файлу
$source_src = $path . $fname;
//создаем путь и имя миниатюры
$new_name = md5($fname) . $ext;
$resource_src = $path_mini . $new_name;
//получаем параметры загруженного файла
$params = getimagesize($source_src);
switch ($params[2]) {
case 1:
$source = imagecreatefromgif($source_src);
break;
case 2:
$source = imagecreatefromjpeg($source_src);
break;
}
//если высота больше ширины
//вычисляем новую ширину
if ($params[1] > $params[0]) {
$newheight = 150;
$newwidth = floor($newheight * $params[0] / $params[1]);
}
//если ширина больше высоты
//вычисляем новую высоту
if ($params[1] < $params[0]) {
$newwidth = 150;
$newheight = floor($newwidth * $params[1] / $params[0]);
}
//создаем миниатюру загруженного изображения
$resource = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $params[0], $params[1]);
imagejpeg($resource, $resource_src, 100); //80 качество изображения
//назначаем права доступа
chmod("$source_src", 0644);
chmod("$resource_src", 0644);
//выводим сообщение
$mess = '<center><br><p style="color:green;">Изображение загружено !</p></center>';
$ok = 1;
}
//include("session.inc.php");
$file = str_replace($server['DOCUMENT_ROOT'], '/', $path_mini . $new_name); // получить путь вида '/img/avatars/15.jpg'
//mysql_query("UPDATE members SET avatar='$file' WHERE id='$userid';"); //Добавление в БД.
$db->Query("UPDATE ".$pref."_users_a SET ava = '$file' WHERE id = '$usid'");
header('Refresh: 1;URL=/account/config/');
}
if(empty($user_data['ava'])) {
echo '<center><img src="/img/c50.gif"></center>';
}else{
echo '<center><img src="/'.$user_data['ava'].'"></center>';
}
?>
<center><b>Настройки профиля</b></center>
<BR />
<?PHP
if(isset($_POST["name"])){
$name = $db->RealEscape($_POST['name']);
$pol = intval($_POST['pol']);
$db->Query("UPDATE ".$pref."_users_a SET name = '$name', pol = '$pol' WHERE id = '$usid'");
echo "<center><font color = 'green'><b>Данные сохранены</b></font></center><BR />";
}
?>
<form action="" method="post">
<table width="330" border="0" align="center">
<tr>
<td><b>Имя:</b></td>
<td align="center"><input type="text" name="name" value="<?=$user_data['name']; ?>"/></td>
</tr>
<tr>
<td><b>Пол:</b></td>
<td align="center"><select name="pol">
<option value="1">Муж
<option value="2">Жен
</select></td>
</tr>
<tr>
<td align="center" colspan="2"><BR /><input type="submit" value="Сохранить" /></td>
</tr>
</table>
</form>
<center><h3>Загрузка аватара</h3></center>
<!--вывод сообщений--><?= $mess ?>
<center>
<p><form method="POST" enctype="multipart/form-data" name="form33">
<table id="upload1" ><tr><td>
</td> <td><span class="psevdoFile"><input id="psevdoFileValue" class="inputFileText" value="выберете файл" style="color:#828282;" type="text"/>
<input class="fileInput" type="file" size="1" onchange="document.getElementById('psevdoFileValue').value = this.value" name="file"/>
</span></td></tr></tr>
</table>
<table>
<tr><td><br><input type='submit' name='submit' class='pictures-btn' value='Загрузить'></a></td></tr>
</table></form></p>
</center>
TyTuKeT
Участник
- Сообщения
- 219
- Реакции
- 37
На ферме где ещё то.Дмитий написал(а):а где ты её установил ?
TyTuKeT
Участник
- Сообщения
- 219
- Реакции
- 37
Разницы то никакой где её ставитьДмитий написал(а):я понял ! но где именно ?
в личном кабинете или над меню,где?
TyTuKeT
Участник
- Сообщения
- 219
- Реакции
- 37
Дек вот он.кнопку сделаи загрузить фото и все.он не работает.не обращает как надо.blackyar24 написал(а):самим модулем не поделишься?
perforator1994
Местный
- Сообщения
- 106
- Реакции
- 2
Snopak
Участник
- Сообщения
- 22
- Реакции
- 1
Анимированную вставляешь картинку или обычную?TyTuKeT написал(а):Имеется данный модуль. Вся проблема в том что при выборе изображения, оно загружается и переименовывается в md5 и становится черным просто черным квадратом, в то время когда оригинал лежит рядом не тронутым. Переименовывается понятно почему, что бы не было дубликата названия и так же изображение сжимается по размерам. Вопрос почему оно становится черным квадратом? Распространяется на все форматы изображения.
PHP:<div class="s-bk-lf"> <div class="acc-title">Настройки</div> </div> <center><div class="silver-bk"> <div class="clr"></div> <? if (isset($_FILES['file'])) { $f_err = 0; //вспомогательная переменная $types = array( '.jpg', '.JPG', '.jpeg', '.gif', '.png' ); //поддерживаемые форматы загружаемых файлов $max_size = 502050; //максимальный размер загружаемого файла (5000-МБ) $path = 'avatar/'; //директория для загрузки $path_mini = 'avatar/'; //директория для загрузки миниатюры $fname = $_FILES['file']['name']; //$fname = md5($fname); $ext = substr($fname, strpos($fname, '.'), strlen($fname) - 1); //определяем тип загружаемого файла //проверка на соответствие формата if (!in_array($ext, $types)) { $f_err++; $mess = '<p style="color:red;">Загружаемый файл не является картинкой</p>'; } //проверка размера файла if (filesize($_FILES['file']['tmp_name']) > $max_size) { $f_err++; $mess = '<p style="color:red;">Размер загружаемой картинки превышает 5 Мб</p>'; } //если файл успешно прошел проверку //перемещаем его в заданную директорию из временной if ($f_err == 0) { move_uploaded_file($_FILES['file']['tmp_name'], $path . $fname); //путь к загруженному файлу $source_src = $path . $fname; //создаем путь и имя миниатюры $new_name = md5($fname) . $ext; $resource_src = $path_mini . $new_name; //получаем параметры загруженного файла $params = getimagesize($source_src); switch ($params[2]) { case 1: $source = imagecreatefromgif($source_src); break; case 2: $source = imagecreatefromjpeg($source_src); break; } //если высота больше ширины //вычисляем новую ширину if ($params[1] > $params[0]) { $newheight = 150; $newwidth = floor($newheight * $params[0] / $params[1]); } //если ширина больше высоты //вычисляем новую высоту if ($params[1] < $params[0]) { $newwidth = 150; $newheight = floor($newwidth * $params[1] / $params[0]); } //создаем миниатюру загруженного изображения $resource = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $params[0], $params[1]); imagejpeg($resource, $resource_src, 100); //80 качество изображения //назначаем права доступа chmod("$source_src", 0644); chmod("$resource_src", 0644); //выводим сообщение $mess = '<center><br><p style="color:green;">Изображение загружено !</p></center>'; $ok = 1; } //include("session.inc.php"); $file = str_replace($server['DOCUMENT_ROOT'], '/', $path_mini . $new_name); // получить путь вида '/img/avatars/15.jpg' //mysql_query("UPDATE members SET avatar='$file' WHERE id='$userid';"); //Добавление в БД. $db->Query("UPDATE ".$pref."_users_a SET ava = '$file' WHERE id = '$usid'"); header('Refresh: 1;URL=/account/config/'); } if(empty($user_data['ava'])) { echo '<center><img src="/img/c50.gif"></center>'; }else{ echo '<center><img src="/'.$user_data['ava'].'"></center>'; } ?> <center><b>Настройки профиля</b></center> <BR /> <?PHP if(isset($_POST["name"])){ $name = $db->RealEscape($_POST['name']); $pol = intval($_POST['pol']); $db->Query("UPDATE ".$pref."_users_a SET name = '$name', pol = '$pol' WHERE id = '$usid'"); echo "<center><font color = 'green'><b>Данные сохранены</b></font></center><BR />"; } ?> <form action="" method="post"> <table width="330" border="0" align="center"> <tr> <td><b>Имя:</b></td> <td align="center"><input type="text" name="name" value="<?=$user_data['name']; ?>"/></td> </tr> <tr> <td><b>Пол:</b></td> <td align="center"><select name="pol"> <option value="1">Муж <option value="2">Жен </select></td> </tr> <tr> <td align="center" colspan="2"><BR /><input type="submit" value="Сохранить" /></td> </tr> </table> </form> <center><h3>Загрузка аватара</h3></center> <!--вывод сообщений--><?= $mess ?> <center> <p><form method="POST" enctype="multipart/form-data" name="form33"> <table id="upload1" ><tr><td> </td> <td><span class="psevdoFile"><input id="psevdoFileValue" class="inputFileText" value="выберете файл" style="color:#828282;" type="text"/> <input class="fileInput" type="file" size="1" onchange="document.getElementById('psevdoFileValue').value = this.value" name="file"/> </span></td></tr></tr> </table> <table> <tr><td><br><input type='submit' name='submit' class='pictures-btn' value='Загрузить'></a></td></tr> </table></form></p> </center>
TyTuKeT
Участник
- Сообщения
- 219
- Реакции
- 37
Обычная 409х439 размер. Да я уже решил эту проблему с другой фермы выдернулSnopak написал(а):Анимированную вставляешь картинку или обычную?
- Статус
- В этой теме нельзя размещать новые ответы.