Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Uploading zdjęć z kompa na serwer
Forum PHP.pl > Forum > Przedszkole
Konop857
Witam

Próbuje zrobić uploading zdjęć z komputera na serwer, oto mój kod:

  1. if($action == "send"){
  2. $form = $_POST['form'];
  3. $file_basic = $_FILES['file'];
  4. $file_name = $file_basic['name'];
  5. $file_path = "gallery/images/".$file_name."";
  6. $file_size = $file_basic['size'];
  7. if ($form == "true"){
  8. $katalog = dir('gallery/images/');
  9. while($plik = $katalog->read()){
  10. if($plik == $file_name) $is = "true";
  11. }
  12. $katalog->close();
  13. if($is != "true"){
  14. copy($file_name, $file_path);
  15. echo "<font color='green'>Plik został skopiowany</font></br>
  16. Informacje o skopiowanym pliku :</br></br>
  17. Nazwa pliku :</br>
  18. ".$file_name."</br></br>
  19. Wielkość pliku :</br>
  20. ".$file_size."kb</br></br>";
  21. } else echo "Już istnieje taki plik!</br></br>";
  22. } else echo "Wystapił bład przy kopiowaniu pliku!</br></br>";
  23. }


  1. if($action == "add"){
  2. echo "<font size='5'>Dodaj Zdjęcie :</font></br></br>
  3. <form action='?subtopic=access_gallery&action=send' enctype='multipart/form-data' method='post'>
  4. <input type='hidden' name='form' value='true'>
  5. <input type='hidden' name='MAX_FILE_SIZE' value='1000000'>
  6. Wybierz zdjęcie do dodania :</br>
  7. <input type='file' name='file' size='40' accept='image/jpeg'></br>
  8. Tylko *.jpg!</br></br><input type='submit' value='Wyślij'></form>";
  9. }


Z początku, wszystko działało (mam na serwerze 2 obrazki), lecz nie wiem co wyczarowałem, że teraz w żaden sposób nie mogę tego odkręcić i nie działa sad.gif

Proszę o pomoc

Pozdrawiam

@edit

Wyskakuje mi taki błąd :

  1. Warning: copy(ognisko.jpg) [function.copy]: failed to open stream: No such file or directory in /home/p176610/public_html/subtopic.php on line 506


Lecz niżej, poprawnie wyświetla się nazwa i ,,waga" pliku :

Cytat
Plik został skopiowany
Informacje o skopiowanym pliku :

Nazwa pliku :
ognisko.jpg

Wielkość pliku :
176727kb
potreb
move_uploaded_file
Konop857
Cytat(potreb @ 9.02.2012, 21:28:49 ) *

Dzięki za odpowiedź, po użyciu move_uploaded_file nie wyskakuje żaden błąd, lecz plik również się nie kopiuje sad.gif

Pozdrawiam
potreb
Bo zapewne używasz złej zmiennej tablicy files, jest taka zmienna jak tmp_name
  1. <?php
  2. $uploads_dir = '/uploads';
  3. foreach ($_FILES["pictures"]["error"] as $key => $error) {
  4. if ($error == UPLOAD_ERR_OK) {
  5. $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
  6. $name = $_FILES["pictures"]["name"][$key];
  7. move_uploaded_file($tmp_name, "$uploads_dir/$name");
  8. }
  9. }
  10. ?>


I jeszcze masz error w tablic FILES, możesz sobie zobaczyć jaki ew. zwraca błąd
Konop857
  1. if($action == "send"){
  2. $form = $_POST['form'];
  3. $file_basic = $_FILES['file'];
  4. $file_name = $file_basic['name'];
  5. $file_name_tmp = $file_basic['name_tmp'];
  6. $file_path = "gallery/images/".$file_name."";
  7. $file_size = $file_basic['size'];
  8. if ($form == "true"){
  9. $katalog = dir('gallery/images/');
  10. while($plik = $katalog->read()){
  11. if($plik == $file_name) $is = "true";
  12. }
  13. $katalog->close();
  14. if($is != "true"){
  15. move_uploaded_file($file_name_tmp, $file_path);
  16. echo "<font color='green'>Plik został skopiowany</font></br>
  17. Informacje o skopiowanym pliku :</br></br>
  18. Nazwa pliku :</br>
  19. ".$file_name."</br></br>
  20. Wielkość pliku :</br>
  21. ".$file_size."kb</br></br>";
  22. } else echo "Już istnieje taki plik!</br></br>";
  23. } else echo "Wystapił bład przy kopiowaniu pliku!</br></br>";
  24. }


Mam takie coś, nie wyskakują żadne błędy, lecz plik nadal nie jest kopiowany.

Pozdrawiam

@edit

$file_error = $file_basic['error']; zwraca 0
i-skrypty.pl
tmp_name, a nie name_tmp smile.gif
potreb
Pomyliłeś się: $file_basic['name_tmp']; ma być tmp_name !


Wypierdziel to:
  1. if ($form == "true"){
  2. $katalog = dir('gallery/images/');
  3. while($plik = $katalog->read()){
  4. if($plik == $file_name) $is = "true";
  5. }


I daj to:

  1. $katalog = 'gallery/images/';
  2. if(!is_dir($katalog)) mkdir($katalog, 0777, true);


Czyli jak nie będzie katalogu utworzy ci całą ścieżkę katalogów i nada chmod 777
Konop857
Ale byczo, działa, dzięki biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.