Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]upload i download
Forum PHP.pl > Forum > Przedszkole
jaca121212
Tak jak wyżej w temacie.
1.W jaki sposób lub gdzie dołączyć zapytanie aby przy uloadzie plików pojawiła się nazwa pliku w bazie a plik w folderze.
2. jak zribić aby po nazwie wyciągnietej z bazy możnaby było pobrać plik na dysk z serwera.
dołańczam skrypt uploadu.
  1. <?php
  2.  
  3. $target_dir = "foto/";
  4. $target_file = $target_dir .basename($_FILES["fileToUpload"]["name"]);
  5. $uploadOk = 1;
  6. $FileType = pathinfo($target_file,PATHINFO_EXTENSION);
  7. // Sprawdź, czy plik muzyką
  8. if(isset($_POST["submit"])) {
  9. $check = filesize($_FILES["fileToUpload"]["tmp_name"]);
  10. if($check !== false) {
  11. echo "";
  12. $uploadOk = 1;
  13. } else {
  14. echo "
  15. ";
  16. $uploadOk = 0;
  17. }
  18. }
  19. // Sprawdź, czy plik istnieje
  20. if (file_exists($target_file)) {
  21. echo "";
  22. $uploadOk = 0;
  23. }
  24. // Sprawdź rozmiar pliku
  25. if ($_FILES["fileToUpload"]["size"] >1000) {
  26. echo "Niestety, plik jest zbyt duży.";
  27. $uploadOk = 0;
  28. }
  29. // Umożliwienia niektórych formatów plików
  30. if($FileType == "mp3" ) {
  31. echo "Niestety, tylko plik mp3 jest dozwolony.";
  32. $uploadOk = 0;
  33. }
  34.  
  35. if ($uploadOk == 0) {
  36. echo "Niestety, plik nie został przesłany.";
  37.  
  38. } else {
  39. if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
  40. echo "Plik". basename( $_FILES["fileToUpload"]["name"]). " został przesłany.";
  41. } else {
  42. echo "Niestety, plik jest zbyt duży, plik nie został przesłany.";
  43. }
  44. }
  45. ?>
bostaf
1. Nazwę pliku w bazie najlepiej będzie zapisać po upewnieniu się, że plik został pomyślnie przesłany na serwer. W Twoim przypadku będzie to po wierszu 39 - tam dostajesz informację, czy plik udało się przesłać, i przed wierszem 40, gdzie informujesz użytkownika o pomyślnym wykonaniu zadania.
2. readfile - w dokumentacji jest przykład pasujący dokładnie do Twojego pytania.
jaca121212
A to readfile to jest do ściągania pliku z serwera.
a jak utworzyć zapytanie do tego skryptu.


Zrobiłem to w ten sposób
  1. <?php
  2.  
  3. $target_dir = "foto/";
  4. $target_file = $target_dir .basename($_FILES["fileToUpload"]["name"]);
  5. $uploadOk = 1;
  6. $FileType = pathinfo($target_file,PATHINFO_EXTENSION);
  7. $data = date('Y-m-d H:i:s');
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. // Sprawdź, czy plik muzyką
  10. if(isset($_POST["submit"])) {
  11. $check = filesize($_FILES["fileToUpload"]["tmp_name"]);
  12. if($check !== false) {
  13. echo "";
  14. $uploadOk = 1;
  15. } else {
  16. echo "
  17. ";
  18. $uploadOk = 0;
  19. }
  20. }
  21. // Sprawdź, czy plik istnieje
  22. if (file_exists($target_file)) {
  23. echo "";
  24. $uploadOk = 0;
  25. }
  26. // Sprawdź rozmiar pliku
  27. if ($_FILES["fileToUpload"]["size"] >100000000) {
  28. echo "Niestety, plik jest zbyt duży.";
  29. $uploadOk = 0;
  30. }
  31. // Umożliwienia niektórych formatów plików
  32. if($FileType == ".mp3" ) {
  33. echo "Niestety, tylko plik mp3 jest dozwolony.";
  34. $uploadOk = 0;
  35. }
  36.  
  37. if ($uploadOk == 0) {
  38. echo "Niestety, plik nie został przesłany.";
  39.  
  40. } else {
  41. if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
  42. $resultat = $polaczenie->query(sprintf("INSERT INTO `pliki` (`user`, `nazwa_pliku`, `ip`, `data`) VALUES ( '%d', '%s', '%s', '%s')",
  43. $_SESSION['id'], $target_file, $ip, $data));
  44.  
  45. echo "Plik". basename( $_FILES["fileToUpload"]["name"]). " został przesłany.";
  46. } else {
  47. echo "Niestety, plik jest zbyt duży, plik nie został przesłany.";
  48. }
  49. }
  50. ?>

i gdy przesyłwm plik na serwer długo wczytuję i po chwili wyskakuję błąd
  1. Warning: move_uploaded_file(foto/12.mp3) [function.move-uploaded-file]: failed to open stream: Permission denied in /virtual/d/a/darmoweogloszenia.ugu.pl/upload.php on line 42
  2.  
  3. Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/virtual/tmp/php6740dR' to 'foto/12.mp3' in /virtual/d/a/darmoweogloszenia.ugu.pl/upload.php on line 42
  4. Niestety, plik jest zbyt duży, plik nie został przesłany.

i jeszcze pytanie w jaki sposób zrobić aby można było przesyłać wszystkie rodzaje plików.

Problem rozwiązany z Uploadem
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.