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 написал(а):Анимированную вставляешь картинку или обычную?
- Статус
 - В этой теме нельзя размещать новые ответы.