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

Jak przesłać obrazek na serwer?

0 głosów
102 wizyt
pytanie zadane 13 grudnia 2016 w PHP, Symfony, Zend przez ThePatrykOOO Dyskutant (7,750 p.)

Witam. Wykonuję teraz stronę z uploadem zdjęć i mam problem. Chodzi o problem z wysłania obrazka na serwer. Wyskakuje mi błąd: Undefined index: obrazek in 9, 39, 49

Oto mój kod: 

<?php
   session_start();

   require_once "connect.php";
//sprawdzanie błędów
function sprawdz_bledy()
{
  if ($_FILES['obrazek']['error'] > 0)
  {
    echo 'problem: ';
    switch ($_FILES['obrazek']['error'])
    {
      // jest większy niż domyślny maksymalny rozmiar,
      // podany w pliku konfiguracyjnym
      case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;}

      // jest większy niż wartość pola formularza
      // MAX_FILE_SIZE
      case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;}

      // plik nie został wysłany w całości
      case 3: {echo 'Plik wysłany tylko częściowo.'; break;}

      // plik nie został wysłany
      case 4: {echo 'Nie wysłano żadnego pliku.'; break;}

      // pozostałe błędy
      default: {echo 'Wystąpił błąd podczas wysyłania.';
        break;}
    }
    return false;
  }
  return true;
}
//typ obrazka
function sprawdz_typ()
{
	if ($_FILES['obrazek']['type'] != 'image/jpeg')
		return false;
	return true;
}

//zapisz plik
function zapisz_plik()
{
  $lokalizacja = "images/IMG";

  if(is_uploaded_file($_FILES['obrazek']['tmp_name']))
  {
    if(!move_uploaded_file($_FILES['obrazek']['tmp_name'], $lokalizacja))
    {
      echo 'problem: Nie udało się skopiować pliku do katalogu.';
        return false;
    }
  }
  else
  {
    echo 'problem: Możliwy atak podczas przesyłania pliku.';
	echo 'Plik nie został zapisany.';
    return false;
  }
  return true;
}

sprawdz_bledy();
sprawdz_typ();
zapisz_plik();



 ?>

Z góry dzięki za pomoc

komentarz 13 grudnia 2016 przez xandros Nałogowiec (29,830 p.)

Użyj stałych zamiast magic numbers

http://php.net/manual/en/features.file-upload.errors.php

eg:

case UPLOAD_ERR_PARTIAL:  
    echo 'Plik wysłany tylko częściowo.'; 
    break;

Oraz polecam zainteresować się PSR-7:

http://www.php-fig.org/psr/psr-7/

3 odpowiedzi

0 głosów
odpowiedź 13 grudnia 2016 przez event15 Szeryf (94,730 p.)
Switch case nie potrzebuje klamer w obrębie jednego case.

To co napisałeś sugeruje że gdzieś masz pętlę. W kodzie jej nie widzę. Undefined index oznacza wyłącznie tyle, że w tablicy $_FILES['obrazek'] brak kluczy takich jak te, które Ci wywalają.
komentarz 13 grudnia 2016 przez ThePatrykOOO Dyskutant (7,750 p.)
to jak powienienem poprawić skrypt aby on poprawnie działał lub podeślij jakiś skrypt działający
komentarz 13 grudnia 2016 przez event15 Szeryf (94,730 p.)
Przede wszystkim chyba sobie żartujesz że wyślę Ci gotowca.

Następnie, dałeś ochłap kodu, który nie jest jego całą funkcjonalnością i wymagasz szklanej kuli. Plik po prostu nie istnieje więc sobie go stwórz jeśli Ci potrzeba.
0 głosów
odpowiedź 13 grudnia 2016 przez xandros Nałogowiec (29,830 p.)

Jeszcze takie pytanie: czy wysyłasz formularz jako multipart?

Ogólnie to sprawdź funkcją var_dump(), co masz w $_FILES;

var_dump($_FILES);

 

0 głosów
odpowiedź 13 grudnia 2016 przez ThePatrykOOO Dyskutant (7,750 p.)
Czy zna ktoś jakiś materiał, który pozwoli nauczyć mi się zrobienia takich rzeczy?

Podobne pytania

0 głosów
1 odpowiedź 93 wizyt
pytanie zadane 23 lipca 2016 w PHP, Symfony, Zend przez DawidxD Użytkownik (810 p.)
0 głosów
3 odpowiedzi 157 wizyt
pytanie zadane 16 sierpnia 2016 w PHP, Symfony, Zend przez Mistrz0000000 Bywalec (2,780 p.)
0 głosów
1 odpowiedź 54 wizyt
pytanie zadane 17 lutego w PHP, Symfony, Zend przez veryape Początkujący (440 p.)
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

63,167 zapytań

109,404 odpowiedzi

228,554 komentarzy

42,692 pasjonatów

Przeglądających: 62
Pasjonatów: 9 Gości: 53

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...