• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Plik na serwerze, ścieżka poprawna a mimo to wyskakuje błąd 404

Object Storage Arubacloud
0 głosów
147 wizyt
pytanie zadane 30 listopada 2016 w PHP przez Peengie Początkujący (360 p.)

Cześć,

Mam bardzo denerwujący problem, mianowicie mam skrypt w którym użytkownicy mogą edytować swoje logo. Przy niektórych użytkownikach działa bez problemu, a przy niektórych nie wyświetla mi grafiki. Co ciekawe, grafika na serwerze jest zapisywana prawidłowo, jeżeli wchodzę przez total commander to normalnie otwiera grafikę. W bazie mysql sprawdziłem i ścieżka też jest poprawnie zapisana. Jednak wpisując tą ścieżkę w przeglądarkę wywala mi bład 404 mimo że inny użytkownik wgrywając tą samą grafikę nie ma problemu :/ Na problem natrafiłem u dwóch użytkowników, nic nie daje ich usunięcie i ponowne wpisanie.

Zdjęcie wgrywam tak (jest tu jeszcze funkcja zmniejszająca rozmiar zdjęcia):

<?php

	session_start();
	
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: index.php');
		exit();
	}		
$login=$_SESSION['login'];
								require_once "connect.php";
								$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
								
								if (mysqli_connect_errno() != 0)
								{
									echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
								}
									else 
								{		
									
								$plik_tmp = $_FILES['plik']['tmp_name']; 
								$plik_nazwad = $_FILES['plik']['name']; 
								$plik_rozmiar = $_FILES['plik']['size']; 
								$plik_nazwa = strtolower($plik_nazwad);

								function resize_image($file, $w, $h, $crop=FALSE) 
								{
								list($width, $height) = getimagesize($file);
								$r = $width / $height;
								if ($crop) 
								{
									if ($width > $height) 
									{
									$width = ceil($width-($width*abs($r-$w/$h)));
									} 
									else 
									{
									$height = ceil($height-($height*abs($r-$w/$h)));
									}
									$newwidth = $w;
									$newheight = $h;
									}
									else 
									{
									if ($w/$h > $r) 
									{
										$newwidth = $h*$r;
										$newheight = $h;
									} 
									else 
									{
										$newheight = $w/$r;
										$newwidth = $w;
									}
									}
									$src = imagecreatefromjpeg($file);
									$dst = imagecreatetruecolor($newwidth, $newheight);
									imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
							 
										return $dst;
									}
										if(is_uploaded_file($plik_tmp)) { 
										move_uploaded_file($plik_tmp, "uploads/max/$login-$plik_nazwa"); 
										$img = resize_image("uploads/max/$login-$plik_nazwa", 360, 225);
										imagejpeg($img, "uploads/$login-$plik_nazwa");
										unlink("uploads/max/$login-$plik_nazwa");
										$polaczenie->query("UPDATE user SET logo='http://domena.pl/wizytowka/uploads/$login-$plik_nazwa' WHERE login='$login'"); 
										$_SESSION['logo'] = "http://domena.pl/wizytowka/uploads/$login.$plik_nazwa";
										echo "Plik: <strong>$plik_nazwa</strong> zostal przeslany na serwer!<br />"; 
										}	
									$polaczenie -> close();
									echo '<meta http-equiv="refresh" content="1; URL=menu.php">';
								}
						
?>

Załączam logi z wyświetlenia grafiki:

 [30/Nov/2016:14:47:10 +0100] "GET /wizytowka/uploads/sasasa-t.jpg HTTP/1.1" 404 618 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; MAAU; rv:11.0) like Gecko"
 [30/Nov/2016:14:47:15 +0100] "GET /wizytowka/uploads/peengie-t.jpg HTTP/1.1" 200 17811 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; MAAU; rv:11.0) like Gecko"

Jak widać w ścieżce zmieniła się tylko nazwa użytkownika. Próbowałem różne przeglądarki, komputery i wszędzie ten sam problem :( Czy wina może leżeć po stronie serwera?

Jeżeli nie ta kategoria to przepraszam, ale nie wiedziałem czy dać to do php czy do mysql czy jeszcze w jakąś inną. 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 600 wizyt
+1 głos
2 odpowiedzi 201 wizyt
pytanie zadane 13 września 2016 w JavaScript przez Miszo Bywalec (2,100 p.)
0 głosów
1 odpowiedź 147 wizyt

92,568 zapytań

141,422 odpowiedzi

319,640 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...