Upload obrazków i dziwne tło

Upload obrazków i dziwne tło
L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

Witam serdecznie wszystkich.
Ładuję obrazek na serwer i zapisuję go przy użyciu:

Kopiuj
imagecreatefromjpeg ($filename)

Jednak po załadowaniu i kliknięciu drukuj obrazka, ustawiając monitor pod kątem ma on dziwne tło. Raz to tło jest kratkowane a raz są na nim pionowe pasy.

Obrazek przed załadowaniem na stronie, oglądając go na monitorze ustawionym pod kątem, ma czyste białe tło.
Wygląda na to że obrazek traci jakość podczas ładowania ? Czy może jest jakaś inna przyczyna.
Tak wygląda obrazek:
user image

edytowany 1x, ostatnio: lukasheek88
PS
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:31
0

A czemu obrazek, któremu robisz upload, zapisujesz przy pomocy "imagecreatefromjpeg" ?

edytowany 1x, ostatnio: pszlaga
L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

A przy pomocy jakiej funkcji powinienem ?

edytowany 1x, ostatnio: lukasheek88
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Rzeszów
0

@lukasheek88: daj cały kod, którym modyfikujesz obrazek + ten źródłowy obrazek.


L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

Poniżej kod którym uploaduje obrazki:

Kopiuj
$plik_tmp = $_FILES['plik']['tmp_name']; 
$plik_nazwa = mktime()."_".$_FILES['plik']['name']; 
$plik_rozmiar = $_FILES['plik']['size']; 
$katalog_duze="../materialy/pomoce_naukowe/";
$katalog_min="../miniatury/pomoce_naukowe/";

if (!file_exists($katalog_duze)) { 
mkdir ($katalog_duze, 0777, true);
}
if (!file_exists($katalog_min)) { 
mkdir ($katalog_min, 0777, true);
}
$link_duze = $katalog_duze."".$plik_nazwa;
$ile_znakow = strlen($link_duze);

$typ_pliku = $_FILES['plik']['type']; 

switch($typ_pliku){
case 'image/jpg':
$rodzaj_pliku = "jpg";
break;
case 'image/jpeg':
$rodzaj_pliku = "jpeg";
break;
case 'image/gif':
$rodzaj_pliku = "gif";
break;
case 'image/png':
$rodzaj_pliku = "png";
break;
case 'application/pdf':
$rodzaj_pliku = "pdf";
break;
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
$rodzaj_pliku = "word";
break;
case 'application/msword':
$rodzaj_pliku = "word";
break;
}

If($ile_znakow<201){

    if (($_FILES['plik'] == 'none') OR (empty($_FILES['plik']['name'])) )
    {
       $message = "Plik nie został załadowany!";
	   ?>
		<h4 class="alert_error">Obrazek nie został zapisany. Spróbuj ponownie. <?php echo $message;?></h4>
	   <?php
    }
    else if ($_FILES['plik']['size'] == 0)
    {
       $message = "Plik ma zero bajtów!";
	   ?>
		<h4 class="alert_error">Obrazek nie został zapisany. Spróbuj ponownie. <?php echo $message;?></h4>
	   <?php
    }
    else if (($_FILES['plik']['type'] != "image/jpeg") AND ($_FILES['plik']['type'] != "image/jpg") AND ($_FILES['plik']["type"] != "image/png") AND ($_FILES['plik']["type"] != "image/gif") AND ($_FILES['plik']["type"] != "application/msword") AND ($_FILES['plik']["type"] != "application/pdf") AND ($_FILES['plik']["type"] != "application/vnd.openxmlformats-officedocument.wordprocessingml.document"))
    {
       $message = "Dozwolone pliki to .jpg, .jpeg, .png, .gif, .doc, .docx, .pdf";
	   ?>
		<h4 class="alert_error">Obrazek nie został zapisany. Spróbuj ponownie. <?php echo $message;?></h4>
	   <?php
    }
    else if (!is_uploaded_file($_FILES['plik']['tmp_name']))
    {
       $message = "Awaria na serwerze. Prośba o zgłoszenie tego administratorowi.";
	   ?>
		<h4 class="alert_error">Obrazek nie został zapisany. Spróbuj ponownie. <?php echo $message;?></h4>
	   <?php
    }
    else {
      $message = "";
      $move = @move_uploaded_file($_FILES['plik']['tmp_name'], $link_duze);
      if(!$move)
      {
         $message = "Problem podczas zapisu plik. Sprawdź czy możesz zapisywać w ścieżce ".$katalog_duze." !" ;
      }
	  else
	  {


IF(($rodzaj_pliku=="jpg") OR ($rodzaj_pliku=="jpeg") OR ($rodzaj_pliku=="png") OR ($rodzaj_pliku=="gif")){
list($width, $height, $type) = getimagesize($katalog_duze."".$plik_nazwa."");

	  switch($type){
	case '1':
	$img = imagecreatefromgif($katalog_duze."".$plik_nazwa."");
	break;
	case '2':
	$img = imagecreatefromjpeg($katalog_duze."".$plik_nazwa."");
	break;
	case'3':
	$img = imagecreatefrompng($katalog_duze."".$plik_nazwa."");
	break;
	}
	$width_mini = $width;
	$height_mini = $height;
	  If($width>240){
		$proporcja = 240/$width;
		$wysokosc = $height*$proporcja;
		$width_mini = 240;
		$height_mini = $wysokosc;
			  }
	  If($height>240){
		$proporcja = 240/$height;
		$szerokosc = $width*$proporcja;
		$height_mini = 240;
		$width_mini = $szerokosc;
			  }
	  $img_mini = imagecreatetruecolor($width_mini, $height_mini);	  
	  imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width, $height);
	$zapisz = $katalog_min."min_".$plik_nazwa."";
	   switch($type){
	case '1':
	imagegif($img_mini, "$zapisz", 100);
	break;
	case '2':
	imagejpeg($img_mini, "$zapisz", 100);
	break;
	case'3':
	imagepng($img_mini, "$zapisz", 7);
	break;
	}
}
elseif($rodzaj_pliku=="pdf")
{
$zapisz = "../miniatury/pdf.png";
}
elseif($rodzaj_pliku=="word")
{
$zapisz = "../miniatury/word.png";
}
	$data = mktime();

$query = "INSERT INTO `zasoby` (`link_duze`, `link_male`, `wiek`, `kategoria`, `data_dodania`, `typ`, `nazwa`, `tag1`, `tag2`, `tag3`, `tag4`, `tag5`, `tag6`, `grupa`, `zrodlo`) 

VALUES ('".$link_duze."', '".$zapisz."', '".$_POST['wiek']."', '".$_POST['kategoria']."', '".$data."', '".$rodzaj_pliku."', '".$_POST['nazwa']."', '".$_POST['tag1']."', '".$_POST['tag2']."', '".$_POST['tag3']."', '".$_POST['tag4']."', '".$_POST['tag5']."', '".$_POST['tag6']."', '1', '".$_POST['zrodlo']."')";

If(mysql_query($query)){
?>
<h4 class="alert_success">Obrazek został zapisany pomyślnie! <?php echo $message;?></h4>
<?php
}
else
{
?>
<h4 class="alert_error">Obrazek nie został zapisany. Spróbuj ponownie. <?php echo $message;?></h4>
<?php
}
}
}
}
 
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Rzeszów
0

A obrazek testowy?


L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

Sorry zapomniałem. Już jest:
http://zapodaj.net/1c35fab9ea7be.jpg.html

dzek69
wrzuć go jako załącznik na forum, zapodaj zapewne rekompresuje plik = nie jest zgodny 1:1 z oryginałem, a o to mi chodzi. dla pewności zpakuj zipem, bo nie wiem czy forum też nie grzebie przy obrazkach
L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

Przesyłam załącznik w zip.

L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

I jak, ktoś podpowie ?

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Rzeszów
0

Sprawdziłem temat i dobrych wieści nie mam:

  1. U mnie działa. Sprawdź załącznik - wywaliłem co niepotrzebne z kodu do szybkiego wytestowania i działa ok.
  2. Kod jest paskudny i dziurawy. Plików nie sprawdza się po $_FILES['plik']['type'] bo ta informacja przychodzi z przeglądarki użytkownika. Każdy może tam wstawić co chce.
  3. SQL Injection. Masakra. Poszukaj w Google co to jest. Funkcje mysql_* są przestarzałe i niedługo będą usunięte.

I trochę bardziej nie na temat:
4) Po co ta weryfikacja na ilość znaków?
5) Co to jest? $_FILES['plik'] == 'none' - to nigdy nie ma prawa się spełnić.
6) Formatowanie kodu.. W notatniku to piszesz? Jeżeli faktycznie błąd jest po stronie kodu - to w tym bałaganie ciężko się odnaleźć.
7) Dlaczego nie korzystasz z gotowych klas do przetwarzania obrazków? Wynajdujesz koło od nowa. Funkcje gd w php są strasznie surowe i ciężko w tym zrobić na szybko coś z sensem.


Webowiec
Cześć. Mógłbyś się podzielić wiedzą na temat komend, których powinno się używać zamiast komend mysql_*?? Przykładowo, biblioteka adodb również nie chroni przed atakami sql injection
dzek69
Poprawne użycie PDO wystarczy.
Webowiec
Dzięki Ci bardzo :)
L8
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 2 lata
  • Postów:41
0

Dzieki. Zapoznam sie z tym. Pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.