Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosty formularz ładowania plików na serwer
Forum PHP.pl > Forum > PHP
dzeejj
Witam. Siedzę już trochę czasu i głowię się co może być nie tak.
Otóż mam taki formularz:

  1. <form enctype="multipart/form-data" action="" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="5000000">
  3. <input type="file" name="file">
  4. <?php $add_date = date("d.m.Y"); ?>
  5. <input type="hidden" name="add-date" value=<?php echo '"'.$add_date.'"'; ?>>
  6. English<br>
  7. <input type="text" style="width: 50%; font-size:11px" placeholder="Description" name="add-photo-descr-en">
  8. <input type="text" style="font-size:11px" placeholder="Author" name="add-photo-author-en">
  9. <br>
  10. Polish<br>
  11. <input type="text" style="width: 50%; font-size:11px" placeholder="Opis" name="add-photo-descr-pl">
  12. <input type="text" style="font-size:11px" placeholder="Autor" name="add-photo-author-pl">
  13. <br>
  14.  
  15. <?php
  16. $string = join('', file('gallery.php'));
  17.  
  18. $editing_album_name = substr($string, strpos($string, '<a href="?album='.$select.'"'));
  19. $editing_album_name = substr($editing_album_name, 0, strpos($editing_album_name, '</a>')+4);
  20. $album_descr_en = $editing_album_name;
  21. $editing_album_name = substr($editing_album_name, strpos($editing_album_name, '\', \'')+4);
  22. $editing_album_name = substr($editing_album_name, 0, strpos($editing_album_name, '\','));
  23.  
  24. $string = join('', file('../pl/editpanel/gallery.php'));
  25.  
  26. $editing_album_name_pl = substr($string, strpos($string, '<a href="?album='.$select.'"'));
  27. $editing_album_name_pl = substr($editing_album_name_pl, 0, strpos($editing_album_name_pl, '</a>')+4);
  28. $album_descr_pl = $editing_album_name_pl;
  29. $editing_album_name_pl = substr($editing_album_name_pl, strpos($editing_album_name_pl, '\', \'')+4);
  30. $editing_album_name_pl = substr($editing_album_name_pl, 0, strpos($editing_album_name_pl, '\','));
  31.  
  32. ?>
  33. <input type="hidden" name="current-album-editing-en" class="form-control" placeholder="Album name" value=<?php echo '"'.$editing_album_name.'"';?>>
  34. <input type="hidden" name="current-album-editing-pl" class="form-control" placeholder="Album name" value=<?php echo '"'.$editing_album_name_pl.'"';?>>
  35. <input type="hidden" name="session" value="true">
  36. <input type="hidden" name="opt" value="4 Success">
  37. <input type="hidden" name="selected-nr-album" value=<?php echo '"'.$select.'"';?>>
  38. <?php $random = ''; for($k = 1; $k <= 31; $k++) { $random .= rand(0,9); }?>
  39. <input type="hidden" name="randomid" value=<?php echo '"'.$random.'"'; ?>>
  40. <input type="submit" class="btn btn-sm btn-primary" value="Add photo" name="add-photo-submit">
  41. </form>


  1. $alb_en = $_POST['current-album-editing-en'];
  2. $alb_pl = $_POST['current-album-editing-pl'];
  3.  
  4.  
  5. $plik_tmp = $_FILES['file']['tmp_name'];
  6. $plik_nazwa = $_FILES['file']['name'];
  7. $plik_rozmiar = $_FILES['file']['size'];
  8.  
  9. if ($_FILES['file']['error'] > 0)
  10. echo $_FILES['file']['error'];
  11.  
  12. if (is_uploaded_file($plik_tmp)) {
  13.  
  14. if ($plik_rozmiar <= 1024*800) {
  15. $newname = 'OwTF';
  16. do {
  17. for ($k = 1; $k <= 30; $k++) {
  18. $newname .= rand(0,9);
  19. }
  20. } while (file_exists('../gallery/gallery-photos/image-'.$newname.'.jpg'));
  21.  
  22. move_uploaded_file($plik_tmp, '../gallery/gallery-photos/image-'.$newname.'.jpg');
  23. $adddate = $_POST['add-date'];
  24. $descr_en = $_POST['add-photo-descr-en'];
  25. $auth_en = $_POST['add-photo-author-en'];
  26. $descr_pl = $_POST['add-photo-descr-pl'];
  27. $auth_pl = $_POST['add-photo-author-pl'];
  28.  
  29. $put = '<img src="'.$img.'" title="'.$alb_en.'" alt="'.$descr_en.'#'.$auth_en.'#'.$adddate.'#0"';
  30. $put .= ' titlepl="'.$alb_pl.'" altpl="'.$descr_pl.'#'.$auth_pl.'#'.$adddate.'#0" />';
  31.  
  32. echo 'File <span style="color: green"><b>successfully added</b></span><br>';
  33.  
  34. } else
  35. echo 'The file <span style="color: red"><b>couldn\'t be uploaded (file size over 800 kB)</b></span><br>';
  36. } else
  37. echo $_FILES['file']['error'];
  38.  
  39.  


Problem w tym, że to nie działa a nie wiem dlaczego. Nawet nie jest wyświetlany błąd, który powinien się pojawić (3 linijka) jak coś byłoby nie tak.
Proszę o pomoc/ podpowiedź co może nie śmigać!
Z góry dzięki
Turson
Czemu ukryłeś instrukcje, jeżeli to tam może być problem?
Pyton_000
Kod
var_dump($_FILES)
prawdę Ci powie.
dzeejj
Dodałem kod, który wczesniej wyciąłem.
Użyłem
  1. var_dump($_FILES);
i:

  1. array (size=0)


Rozumiem, że wynika z tego, że nic nie jest przekazywane z tego formularza (jeśli chodzi o plik), tylko dlaczego?
shpaque
  1. <?php
  2. function ValidateEmail($email)
  3. {
  4. $pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';
  5. return preg_match($pattern, $email);
  6. }
  7. function RecursiveMkdir($path)
  8. {
  9. if (!file_exists($path))
  10. {
  11. RecursiveMkdir(dirname($path));
  12. mkdir($path, 0777);
  13. }
  14. }
  15. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  16. {
  17. $mailto = 'twojmail@wo.pl';
  18. $mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;
  19. $subject = 'Dodano plik na serwer!';
  20. $message = '';
  21. $success_url = './index.php';
  22. $error_url = './index.php';
  23. $error = '';
  24. $eol = "\n";
  25. $max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000;
  26. $upload_folder = "upload";
  27. $upload_folder = "http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])."/".$upload_folder;
  28. $boundary = md5(uniqid(time()));
  29. $header = 'From: '.$mailfrom.$eol;
  30. $header .= 'Reply-To: '.$mailfrom.$eol;
  31. $header .= 'MIME-Version: 1.0'.$eol;
  32. $header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;
  33. $header .= 'X-Mailer: PHP v'.phpversion().$eol;
  34. if (!ValidateEmail($mailfrom))
  35. {
  36. $error .= "The specified email address is invalid!\n<br>";
  37. }
  38. $i = 0;
  39. while (list ($key, $val) = each ($_FILES))
  40. {
  41. if ($_FILES[$key]['name'] != "" and file_exists($_FILES[$key]['tmp_name']) and $_FILES[$key]['size'] > 0)
  42. {
  43. $upload_DstName[$i] = $_FILES[$key]['name'];
  44. $upload_SrcName[$i] = $_FILES[$key]['name'];
  45. $upload_Size[$i] = ($_FILES[$key]['size']);
  46. $upload_Temp[$i] = ($_FILES[$key]['tmp_name']);
  47. $upload_Type[$i] = ($_FILES[$key]['type']);
  48. $upload_Link[$i] = "$upload_folder/$upload_DstName[$i]";
  49. $upload_fieldname[$i] = $key;
  50. $upload_fieldname_final[$i] = ucwords(str_replace("_", " ", $key));
  51. $fieldvalue[$i] = $upload_Link[$i];
  52. }
  53. if ($upload_Size[$i] >= $max_filesize)
  54. {
  55. $error .= "The size of $key (file: $upload_SrcName[$i]) is bigger than the allowed " . $max_filesize/1024 . " Kbytes!\n";
  56. }
  57. $i++;
  58. }
  59. if (!empty($error))
  60. {
  61. $errorcode = file_get_contents($error_url);
  62. $replace = "##error##";
  63. $errorcode = str_replace($replace, $error, $errorcode);
  64. echo $errorcode;
  65. }
  66. $uploadfolder = basename($upload_folder);
  67. for ($i = 0; $i < count($upload_DstName); $i++)
  68. {
  69. $uploadFile = $uploadfolder . "/" . $upload_DstName[$i];
  70. if (!is_dir(dirname($uploadFile)))
  71. {
  72. RecursiveMkdir(dirname($uploadFile));
  73. }
  74. else
  75. {
  76. chmod(dirname($uploadFile), 0777);
  77. }
  78. move_uploaded_file($upload_Temp[$i] , $uploadFile);
  79. chmod($uploadFile, 0644);
  80. }
  81. $internalfields = array ("submit", "reset", "send", "captcha_code");
  82. $message .= $eol;
  83. $message .= "IP Address : ";
  84. $message .= $_SERVER['REMOTE_ADDR'];
  85. $message .= $eol;
  86. foreach ($_POST as $key => $value)
  87. {
  88. if (!in_array(strtolower($key), $internalfields))
  89. {
  90. if (!is_array($value))
  91. {
  92. $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;
  93. }
  94. else
  95. {
  96. $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
  97. }
  98. }
  99. }
  100. if (count($upload_SrcName) > 0)
  101. {
  102. $message .= "\nThe following files have been uploaded:\n";
  103. for ($i = 0; $i < count($upload_SrcName); $i++)
  104. {
  105. $message .= $upload_SrcName[$i] . ": " . $upload_Link[$i] . "\n";
  106. }
  107. }
  108. $body = 'This is a multi-part message in MIME format.'.$eol.$eol;
  109. $body .= '--'.$boundary.$eol;
  110. $body .= 'Content-Type: text/plain; charset=UTF-8'.$eol;
  111. $body .= 'Content-Transfer-Encoding: 8bit'.$eol;
  112. $body .= $eol.stripslashes($message).$eol;
  113. $body .= '--'.$boundary.'--'.$eol;
  114. if ($mailto != '')
  115. {
  116. mail($mailto, $subject, $body, $header);
  117. }
  118. header('Location: '.$success_url);
  119. }
  120. ?>


to na początek, a w formularzu...

  1. <form name="formularz" method="post" action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data" accept-charset="UTF-8" id="formularz">
  2. <input type="hidden" name="filesize" value="500">
  3. <input type="file" id="plik" name="plik" title="dodaj plik">
  4. <input type="submit" id="submit" name="" value="Wyślij">
  5. </form>


i tyle!
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.