Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> formularz do wgrania pliku
stom123
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.11.2011

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


Witam! Potrzebuję zrobić formularz kontaktowy z zapisem plików na serwer.
Użytkownik podaje nazwę folderu i 36 plików do wgrania (po trzy do każdego miesiąca). Zrobiłam formularz jednak działa on na serwerze lokalnym a jak przenoszę go na hosting to wczytuje tylko pierwsze 20 plików.

Tutaj jest skrypt:
  1. if(isset($_POST['submit'])) {
  2. $folderStr = $_REQUEST['folderName'];
  3. $upload_folder = preg_replace("'\s+'", '-', $folderStr);
  4.  
  5. $upload_path1 = './upload_files/'.$upload_folder.'/1/';
  6. ...
  7. $upload_path12 = './upload_files/'.$upload_folder.'/12/';
  8.  
  9. if(is_dir($upload_path)) {
  10. echo 'wybierz inną nazwę folderu';}
  11. else {
  12. mkdir('./upload_files/'.$upload_folder.'/', 0777);chmod("$upload_path1", 0777);
  13. ...
  14. mkdir('./upload_files/'.$upload_folder.'/', 0777);chmod("$upload_path12", 0777);
  15.  
  16.  
  17. $path1= $upload_path1.$_FILES['uploadArray']['name'][0];
  18. ...
  19. $path36= $upload_path12.$_FILES['uploadArray']['name'][35];
  20.  
  21. if($_FILES['uploadArray']['size'][0]>0)
  22. {
  23. copy($_FILES['uploadArray']['tmp_name'][0], $path1);
  24. echo "Styczeń 1 : ".$_FILES['uploadArray']['name'][0]."<BR/>";
  25.  
  26. }
  27. ...
  28. if($_FILES['uploadArray']['size'][35]>0)
  29. {
  30. copy($_FILES['uploadArray']['tmp_name'][35], $path36);
  31. echo "Grudzień 3 : ".$_FILES['uploadArray']['name'][35]."<BR/>";
  32.  
  33. }
  34. echo "<BR/>Pliki zaladowane";
  35. }
  36. }


  1. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="contactform" enctype="multipart/form-data">
  2.  
  3. <tr>
  4. <td>
  5. <input name="uploadArray[]" type="file" id="uploadArray[]" size="10" />
  6. ...
  7. ...
  8. <input name="uploadArray[]" type="file" id="uploadArray[]" size="10" />
  9. </td>
  10. </tr>
  11. <tr>
  12. <td>
  13. <input type="submit" value="Upload" name="submit" class="button" />
  14. </td>
  15. </tr>
  16. </table>
  17. </form>



I tak jak wspomniałam. Ładuje tylko 20 pierwszych plików. Czy coś trzeba zmienić w ustawieniach hostingu bo na serwerze lokalnym mi działa?

Czy ktoś ma pomysł jak jeszcze inaczej można wgrać pliki na serwer poprzez formularz?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
d0man
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.11.2011

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


Witam, temat pasuje to pozwole sobie sie podłączyć (IMG:style_emoticons/default/wink.gif)

Otóż mam lokalny serwer postawiony na server2go w win7.
problem zdaje się polegać na jakimś ograniczeniu typów plików, ktore mogą być przesyłane - taki wniosek wyciągam po 3 dniach poszukiwan i sprawdzania róznych możliwosci.

podczas wysyłania plików (różnej wielkości) zdjęc(gif, jpeg, itp), exe, mp3...

$_FILES['plik'][name] => nazwa_pliku.gif/jpg/exe/mp3
$_FILES['plik'][type] =>
$_FILES['plik'][tmp_name] =>
$_FILES['plik'][error] => 3
$_FILES['plik'][size] => 0

czyli plik przesyła się częściowo, przez co w tablicy $_POST nie ma nawet przycisku Wysyłania (po kliknieciu inputa submit $_POST['submit'] nie istnieje), a w efekcie po wyslaniu formularza odswieza sie po prostu plik php bez żadnych danych.

natomiast , co ciekawe, większe nawet niż powyższe pliki, ale o rozszerzeniach m.in.:

html, sql, css, php, inf, cpp

przesyłają sie bez błędu ($_POST['submit'] wówczas istnieje):
$_FILES['plik'][name] => nazwa_pliku.html | sql | css | php | inf | cpp
$_FILES['plik'][type] => text/css (lub inny)
$_FILES['plik'][tmp_name] => C:\Users\dmn\AppData\Local\Temp\php3F00.tmp
$_FILES['plik'][error] => 0
$_FILES['plik'][size] => xxxx

zauważyłem jeszcze, że mimo brak błędu, w folderze wskazanym przez $_FILES['plik']['tmp_name'] nie ma uploadowanego pliku (ww typu, który nie zwraca błędu), w następstwie czego zapewne funkcja move_uploaded_file() nie przenosi mi go we wskazane miejsce, bo nie ma czego przenosić...

Jeśli to ma znaczenie Biblioteka GD - włączona.

A to ustawienia php.ini pobrane poleceniami ini_get():

display_errors = 1
register_globals = 0
post_max_size = 8M
upload_max_filesize = 2M
post_max_size+1 = 9

oczywiscie w znaczniku <form> dałem enctype="multipart/form-data"
jest również pole hidden name="MAX_FILE_SIZE" o dostatecznie dużej wartości... jego usuniecie nic nie zmienia

czy jest coś jeszcze co mógłbym sprawdzić by rozwiązać ten problem?
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 17:55