Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wysyłka plików na serwer
Forum PHP.pl > Forum > PHP
pietruszka
Dopiero zaczynam programować w php i mam następujący problem:
Potrzebuję stworzyć w php stronkę zawierającą tabelkę z plikami przesyłanymi przez użytkowników mojej strony wraz z ich danymi np. Imię, Nazwisko, stopień naukowy, e-mail i takie tam, które to dane podawali by na innym formularzu i przesyłali wraz z załącznikami na serwer, czy ktoś z was nie robił może czegoś takiego i niemiałby może plików? Wielkie dzięki za wszelką pomoc.
czachor
Poczytaj to: http://pl.php.net/manual/pl/features.file-upload.php i przejrzyj przykłady. Szybko zrobisz coś podobnego.
pietruszka
Wstyd się przyznać ale liczę na choć częściowego gotowca, bo mam 2 dni na zaliczenie przedmiotu, a dokładnie coś takiego się zadeklarowałem zrobić:) Ale oczywiście dzięki i może po lekturze do czegoś dojdę ohmy.gif
bregovic
Z linka podanego przez czachora, formularz:
  1. <form enctype="multipart/form-data" action="_URL_" method="post">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  3. Send this file: <input name="userfile" type="file" />
  4. <input type="submit" value="Send File" />
  5. </form>

I kod php:
  1. <?php
  2. // In php versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
  3. // of $_FILES.
  4.  
  5. $uploaddir = '/var/www/uploads/';
  6. $uploadfile = $uploaddir . $_FILES['userfile']['name'];
  7.  
  8. print &#092;"<pre>\";
  9. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  10.  print &#092;"File is valid, and was successfully uploaded. \";
  11.  print &#092;"Here's some more debugging info:n\";
  12.  print_r($_FILES);
  13. } else {
  14.  print &#092;"Possible file upload attack! Here's some debugging info:n\";
  15.  print_r($_FILES);
  16. }
  17. print &#092;"</pre>\";
  18.  
  19. ?>

Do formularza dodajesz potrzebne ci pola, i dodajesz je do bazy danych/pliku - powiedz czy używasz bazy danych czy plików - i spróbuj poeksperymentować... Jak ci nie wyjdzie to napisz tutaj i podaj twój kod.
pietruszka
Wolałbym aby było to jednak na plikach, poeksperymentuję:)
bregovic
Ok, więc jeśli na plikach, to zrób to tak:
  1. Sprawdź czy otrzymałeś plik z taki jakiego oczekiwałeś, zrób sobie tablicę (array) z oczekiwanymi typami mime plików i sprawdzaj czy przesłany plik ma jeden z tych typów (np używając mime_content_type " title="Zobacz w manualu PHP" target="_manual).
  2. Wygeneruj przypadkową nazwę dla pliku (rand" title="Zobacz w manualu PHP" target="_manual, time" title="Zobacz w manualu PHP" target="_manual i sha1" title="Zobacz w manualu PHP" target="_manual) - tylko pamiętaj o dodaniu na końcu rozszerzenia.
  3. Zapisz plik w żądanym miejscu.
  4. Zapisz dane z twojego formularza i nazwę zapisanego pliku w pliku tekstowym używając file_put_contents" title="Zobacz w manualu PHP" target="_manual (jeśli używasz PHP5) lub fwrite" title="Zobacz w manualu PHP" target="_manual, i fclose" title="Zobacz w manualu PHP" target="_manual - pamiętaj żeby oddzielić dane jakimś separatorem, np. semikolonem: ";".
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.