Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z przesyłaniem plików
Forum PHP.pl > Forum > Przedszkole
imashjan
Mam taki problem:

Mam konto na wirtualnym serwerze, a na nim ma formularz w którym są dane imie nazwisko itp, na końcu jest dodanie plików dokładnie 5 maja to być pliki jpg
i w żaden sposób nie formularz nie przesyła mi plików, nie wiem czemu, o to pliki:

Plik Formularza:
  1. <form action="dodaj.php" method="post" enctype="multipart/form-data">
  2. <table cellpadding="0" cellspacing="0" border="1" width="450">
  3. <tr>
  4. <td width="225">Imię i Nazwisko</td>
  5. <td width="225"><input type="text" name="imie_i_nazwisko"></td>
  6. </tr>
  7. <tr>
  8. <td width="225">Ulica</td>
  9. <td width="225"><input type="text" name="ulica"></td>
  10. </tr>
  11. <tr>
  12. <td width="225">Miasto</td>
  13. <td width="225"><input type="text" name="miasto"></td>
  14. </tr>
  15. <tr>
  16. <td width="225">Kod Pocztowy</td>
  17. <td width="225"><input type="text" name="xx" size="1"> - <input type="text" name="xxx" size="2"></td>
  18. </tr>
  19. <tr>
  20. <td width="225">Telefon komórkowy</td>
  21. <td width="225"><input type="text" name="tel"></td>
  22. </tr>
  23. <tr>
  24. <td width="225">e-mail</td>
  25. <td width="225"><input type="text" name="email"></td>
  26. </tr>
  27. <tr>
  28. <td width="225">Wybierz forme platnosci</td>
  29. <td width="225" height="30">
  30. <tr>
  31. <td width="225">Przelew:<input type="radio" name="przelew"></td><td width="">
  32. Za&nbsp;pobraniem<input type="radio" name="za_pobraniem"></td><td width="">
  33. </td>
  34. </tr>
  35. </tr>
  36. </table>
  37. </td>
  38. </tr>
  39. <tr>
  40. <td width="225" valign="top">Zalącz pliki</td>
  41. <td width="225">
  42. <input type="file" name="userfile">
  43. <input type="file" name="userfile">
  44. <input type="file" name="userfile">
  45. </td>
  46. </tr>
  47. <tr>
  48. <td width="225">Wyslij</td>
  49. <td width="225"><input type="submit" value="wyslij"></td>
  50. </tr>
  51. </table>
  52. </form>

a o to pliki php:
  1. <?
  2. $header = "Nowe zdjecia od $imie_i_nazwisko";
  3. $tresc = "$imie_i_nazwiskon$ulican$miaston$xx,$xxxn$teln$emailn$przelewn$za_pobraniem
    n"
    ;
  4. mail("adres@adres.pl", $header, $tresc);
  5. echo "<b>Jak zdjecia zostana wyslane otrzymasz informacje na adres: <a href=mailto:$email>$email</a> <br><b>Dziekujemy</br>";
  6.  
  7. $max_rozmiar = 1024*1024;
  8. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  9. if ($_FILES['plik']['size'] > $max_rozmiar) {
  10. echo 'Błąd! Plik jest za duży!';
  11. } else {
  12. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  13. echo '<br/>';
  14. if (isset($_FILES['plik']['type'])) {
  15. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  16. }
  17. move_uploaded_file($_FILES['plik']['tmp_name'],
  18. $_SERVER['DOCUMENT_ROOT'].'/test/foto/'.$_FILES['plik']['name']);
  19. }
  20. } else {
  21.  echo 'Błąd przy przesyłaniu danych!';
  22. }
  23. ?>


Może mi ktoś powiedzieć co jest nie tak?
Chcę aby mi przenosił pliki w poczcie, jako załaczniki.
mike
Masz w kodzie HTML:
  1. <input type="file" name="userfile">

a w skrypcie odbierasz:
  1. <?php
  2.  
  3. $_FILES[ 'plik' ];
  4.  
  5. ?>

Stąd "nie przesyła" plików, bo w rzeczywistości przesyła lecz Ty je źle odczytujesz.

A jak chcesz wysłać klika to nie rób tak:
  1. <input type="file" name="userfile">
  2. <input type="file" name="userfile">
  3. <input type="file" name="userfile">

tylko:

  1. <input type="file" name="userfile[]">
  2. <input type="file" name="userfile[]">
  3. <input type="file" name="userfile[]">
imashajn
mogłbyś troszke wiecej napisać co złego napisałem w php i w której linijce mam tak pisać to co Ty napisałaś
Gość_bcb
takze interesowalo by mnei jak wyslac kilka plikow za pomoc ajednego formularza.

moze jest gdzies jasi prosty gotowy skrytp ? ktory by to zobrazowal.
Kihol
Witam, mike_mech miał na myśli, że wysyłasz swój plik przez formularz jako "userfile"

tutaj:
  1. <input type="file" name="userfile">


więc jeśli chcesz go poprawnie odczytać w php to musisz użyć funkcji na zmiennej "userfile" a nie na "plik", jak to zrobiłeś, czyli :

...
  1. <?php
  2. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  3. if ($_FILES['plik']['size'] > $max_rozmiar) {
  4. ?>
...

zmieniasz
  1. <?php
  2.  $_FILES['plik']['tmp_name'] 
  3. ?>

na:
  1. <?php
  2. $_FILES['userfile']['tmp_name'] 
  3. ?>


i tak w całym skrypcie

A jeśli chodzi o kilka plików naraz, to nie próbowałem, więc nie chcę wprowadzać w błąd.
mike
... a jeśli chodzi o kilka plików, to wstaw do formularza:
  1. <input type="file" name="userfile[]">
  2. <input type="file" name="userfile[]">
  3. <input type="file" name="userfile[]">

i zobacz co Ci po jego wsyłaniu wyświetli następujący kod:
  1. <?php
  2.  
  3. echo '<pre>' . print_r( $_FILES, true ) . '</pre>';
  4.  
  5. ?>
sobstel
Cytat(Gość_bcb @ 2005-12-05 19:46:12)
takze interesowalo by mnei jak wyslac kilka plikow za pomoc ajednego formularza.

moze jest gdzies jasi prosty gotowy skrytp ? ktory by to zobrazowal.

http://pl2.php.net/manual/en/features.file...ad.multiple.php
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.