Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][mysql] Problem z upload-em wielu plików do bazy.
Forum PHP.pl > Forum > PHP
toolmaniak
Witam.

Nie wiem czy jestem ostatnio jakiś przemęczony czy co, ale mam problem ze skryptem poniżej. Działa on bez zarzutu jeżeli zamiast zapytania do bazy wstawiam move_uploaded_file, który jest tutaj oznaczony znakiem komentarza. Wtedy w folderze docelowym mam wszystkie pliki które przesłałem z formularza, natomiast jeżeli zamiast tego używam zapytania INSERT żeby wstawiło mi je do tabeli sql, które z kolei czyta z funkcji fopen to już pojawia się problem gdyż wkleja mi tylko jeden plik. Co ja robie nie tak w tym skrypcie?

  1. <?php
  2. foreach($_FILES['userfile']['error'] as $key => $error) {
  3.  
  4. if ($error == UPLOAD_ERR_OK) {
  5.  
  6. if (is_uploaded_file($_FILES['userfile']['tmp_name'][$key])) {
  7.  
  8. $fileName = $_FILES['userfile']['name'][$key];
  9. $tmpName = $_FILES['userfile']['tmp_name'][$key];
  10. $fileSize = $_FILES['userfile']['size'][$key];
  11. $fileType = $_FILES['userfile']['type'][$key];
  12.  
  13.  
  14.  
  15.  
  16. //move_uploaded_file($tmpName,"upload/$fileName");
  17. //$fileName="upload/$fileName";
  18.  
  19.  
  20.  
  21.  
  22. $fp = fopen($tmpName, 'r');
  23. $content = fread($fp, $fileSize);
  24. $content = addslashes($content);
  25. fclose($fp);
  26.  
  27. {
  28. $fileName = addslashes($fileName);
  29. }
  30.  
  31.  
  32. include 'library/config.php';
  33. include 'library/opendb.php';
  34.  
  35. $query = "INSERT INTO upload (name, size, type, userval,login,id_klienci, content ) ".
  36.  "VALUES ('$fileName', '$fileSize', '$fileType','$uzytkownik','$_SESSION[user_db]','$_SESSION[ident]', '$content')";
  37.  
  38. mysql_query($query) or die('Error, query failed');
  39. include 'library/closedb.php';
  40.  
  41. echo "<br>File $fileName uploaded<br><script>alert('File was uploaded in database'); document.location.href='./download.php';</script>";
  42. }
  43. }
  44. else {
  45.  
  46. print "<script type='text/javascript' language='javascript'>alert('Wystapil Blad:";
  47.  
  48.  
  49. switch($_FILES['userfile']['error'][$key]) 
  50. {
  51.  
  52. case UPLOAD_ERR_FORM_SIZE:
  53.  
  54. echo ("Pzrekroczono maksymalny dozwolony rozmiar pliku!");
  55.  
  56. break;
  57.  
  58. case UPLOAD_ERR_PARTIAL:
  59.  
  60. echo ("Odebrano tylko fragment pliku!");
  61.  
  62. break;
  63.  
  64. case UPLOAD_ERR_NO_FILE:
  65.  
  66. echo ("Plik nie zostal pobrany!");
  67. break;
  68. default:
  69. echo ("Nieznany typ bledu!");
  70.  
  71. }
  72.  
  73. print "'); history.back();</script>r";
  74. }
  75. }
  76. }
  77. }
  78.  
  79. ?>
Exek
include 'library/config.php';
include 'library/opendb.php';

hmm... nie powinno byc include_once? w koncu to sie includuje w petli. A error_notice(E_ALL) cos pokazuje?

no i troche bez sensu otwieranie polaczenia i zamykanie po kazdym dodaniu IMO
toolmaniak
Rzeczywiście, nie zwróciłem uwagą na includy wewnątrz foreach, thx a lot, DZIAŁA smile.gif
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.