Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> upload plików, problem z uploadem
mlynar
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 19.09.2006

Ostrzeżenie: (0%)
-----


Mam problem z uploadem plików. Skrypt odpowiedzialny za upload to:
Kod
<?php
     if (is_uploaded_file( $_FILES['userfile']['tmp_name']))
        {
        $strUploadDir='http://www.domena.pl/pliki/'.$_FILES['userfile']['name'];
        if (move_upload_file( $_FILES['userfile']['tmp_name'], $strUploadDir ))
           {
           echo 'Plik został pomy&para;lniej uploadowany';
           }
        else
           {
           echo 'Upload plików nie powiódł się.';
           }
        }
     else
         {
         echo 'Plik nie został wysłany na serwer';
         }
?>

Skrypt nie wyswietla zupełnie nic (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) sprawdzilem ustawienia serwera i jest ok. ustawilem chmod katalogu na 777. probowalem tez ze sciezką '/pliki/. nie mam juz pomysłu wiec zwracam sie o pomoc?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
cadavre
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


A przypadkiem w formie masz mimetype?
Go to the top of the page
+Quote Post
miggie
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Rudziniec

Ostrzeżenie: (0%)
-----


Heya
Cytat
$strUploadDir='http://www.domena.pl/pliki/'.$_FILES['userfile']['name'];

nie wiem, czy używanie nazwy katalogu z "http:" i domeną jest tutaj uzasadnione.
Właśnie dzisiaj się bawiłem z uploadem plików. Jako katalog główny przyjąłem katalog, z którego został uruchomiony skrypt.
Ścieżka do pliku wygląda u mnie następująco: 'UploadDir/foo.php'
Nie jestem pewien, czy się sprawdzi w każdej sytuacji, ale u mnie działa.

Powodzenia.
Go to the top of the page
+Quote Post
mlynar
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 19.09.2006

Ostrzeżenie: (0%)
-----


Nie mam określonego typu przesyłanych plikow. formularz wyglada tak:
Kod
<form action="wyslij.php" method="post" enctype="multipart/form-data">
<input name="MAX_FILE_SIZE" value="1000000" type="hidden">
Załaduj ten plik: <input type="file" name="userfile">
<input type="submit" value="Wyślij plik">
</form>



a sciezke tez probowalem ustawic na
Kod
$strUploadDir='pliki/'.$_FILES['userfile']['name'];

a takze

$strUploadDir='/pliki/'.$_FILES['userfile']['name'];

niestety nie przynioslo rezultatow
Go to the top of the page
+Quote Post
miggie
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Rudziniec

Ostrzeżenie: (0%)
-----


może to Ci pomoże...
U mnie działa:

kod z pliku 'wyslij.php'
  1. <?php
  2.  
  3. $currFileName = $_SERVER['PHP_SELF']; //wskazuje na plik, z ktorego zostala wywolana
  4. $dirName = 'images/'; //katalog docelowy
  5. include ('FileUpload.php'); //zaladowanie pliku z klasa 
  6. $a = new FileUpload; //utworzenie obiektu
  7. if(!isset($_FILES['plik'])){ //czy zostal przeslany plik?
  8. echo $a->DrawForm($currFileName).'<br>'; //jesli nie, to pokaz formularz
  9. } else {
  10. echo $a->MoveFile($dirName).'<br>'; //jesli tak, to skopiuj plik z temp do kat. docelowego
  11. }
  12. echo "<h3><a href='$currFileName'>Powrót</a></h3>"; //powrot do strony wysylania
  13.  
  14. ?>


dalej kod pliku FileUpload.php
  1. <?php
  2.  
  3. class FileUpload
  4. /*
  5. Klasa do wysyłania plików na serwer BY MIGUR
  6. 1. trzeba ją 'zainkludować'
  7. 2. metody: 
  8. a. DrewForm($filename)
  9. gdzie $filename - nazwa pliku, który ma się otworzyć po wysłaniu pliku z formularza
  10. Metoda rysuje formularz (dokładnie zwraca tekst zawierający kod formularza)
  11. b. MoveFile($uploaddir)
  12. gdzie $uploaddir - nazwa katalogu, do którego ma się zapisać plik
  13. Metoda zwraca tekst informujący o sukcesie lub o błędzie.
  14. */
  15. {
  16.  
  17. function FileUpload()
  18. {
  19. }
  20.  
  21. function DrawForm($filename) //wygeneruj formularz
  22. {
  23. $txt = '
  24. <form name="Wyslij"
  25. enctype = "multipart/form-data"
  26. action = "'.$filename.'"
  27. method = "POST">
  28. <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
  29. <table>
  30. <tr>
  31. <td>Nazwa pliku:</td>
  32. <td>
  33. <input type = "file"
  34. name = "plik"
  35. size = "60">
  36. </td>
  37. <td>
  38. <input type = "submit"
  39. name = "wyslij"
  40. value = "Wyślij plik">
  41. </td>
  42. </tr>
  43. </table>
  44. ';
  45. return $txt;
  46. }
  47.  
  48. function MoveFile($uploaddir) //skopiuj plik z tmp do katalogu $uploaddir
  49. {
  50. $destination = $uploaddir.$_FILES['plik']['name'];
  51. echo 'Wczytuje plik do: <b>'.$destination.'</b><br>';
  52. if(move_uploaded_file($_FILES['plik']['tmp_name'],$destination)) 
  53. {
  54. $txt = 'Plik został pomyślnie wczytany'; //Przesylanie OK
  55. } else {
  56. $PlikError = $_FILES['plik']['error']; //Blad
  57. switch ($PlikError)
  58. {
  59. case 1: $errtxt = 'Zbyt duży rozmiar pliku'; break;
  60. case 2: $errtxt = 'Zbyt duży rozmiar pliku'; break;
  61. case 3: $errtxt = 'Plik wysłany tylko częściowo'; break;
  62. case 4: $errtxt = 'Nie wysłano żadnego pliku'; break;
  63. }
  64. $txt = '<span style="color: red"><strong>Błąd wczytywania pliku: </strong>$errtxt </span> ';
  65. }
  66. return $txt;
  67. }
  68. }
  69. ?>


Może nie jest to odkrywcze, ale u mnie działa. I lokalnie i na serwerze.

Powodzenia.

Ten post edytował miggie 13.11.2006, 00:22:26
Go to the top of the page
+Quote Post
mlynar
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 19.09.2006

Ostrzeżenie: (0%)
-----


Dzieki! twoj skrypt dziala. i chyba juz sie nie dowiem co bylo zle w tamtym;)
Go to the top of the page
+Quote Post
miggie
post
Post #7





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Rudziniec

Ostrzeżenie: (0%)
-----


Cieszę się (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 01:33