Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Java][PHP][HTML]Multiupload zdjęć + pasek postępu
Wampirek12
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 13.02.2016

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


Witam wiem, że z uploadem zdjęć jest duzo tematów jednak żaden nie rozwiązuje mojego problemu.
Zrobiłem stronę wszystko działa pięknie zdjęcia się dodają jednak jak wiadomo taki upload troszkę trwa dlatego chciałbym dodać pasek postępu aby było wiadomo czy zdjęcie w ogole się dodaje czy tez nie. I tu jest moj problem bo nie znam za bardzo JS i znalazłem gotowy skrypt który działa po jednym pliku ale gdy jest ich kilki juz nie.
plik upload.php
  1. <?php
  2.  
  3. /* utworzenie zmiennych */
  4. $plik=0;
  5. $plik = count($_FILES['fileToUpload']['name']);
  6. print_r($plik);
  7. /* utworzenie zmiennych */
  8. for ($i = 0; $i<$plik; $i++){
  9. $folder_upload="upload";
  10. $plik_nazwa=$_FILES['fileToUpload']['name'][$i];
  11. $plik_lokalizacja=$_FILES['fileToUpload']['tmp_name'][$i]; //tymczasowa lokalizacja pliku
  12. $plik_mime=$_FILES['fileToUpload']['type'][$i]; //typ MIME pliku wysłany przez przeglądarkę
  13. $plik_rozmiar=$_FILES['fileToUpload']['size'][$i];
  14. $plik_blad=$_FILES['fileToUpload']['error'][$i]; //kod błędu
  15.  
  16. /* sprawdzenie, czy plik został wysłany */
  17. if (!$plik_lokalizacja) {
  18. exit("Nie wysłano żadnego pliku");
  19. }
  20.  
  21.  
  22. /* sprawdzenie błędów */
  23. switch ($plik_blad) {
  24. case UPLOAD_ERR_OK:
  25. break;
  26. case UPLOAD_ERR_NO_FILE:
  27. exit("Brak pliku.");
  28. break;
  29. case UPLOAD_ERR_INI_SIZE:
  30. case UPLOAD_ERR_FORM_SIZE:
  31. exit("Przekroczony maksymalny rozmiar pliku.");
  32. break;
  33. default:
  34. exit("Nieznany błąd.");
  35. break;
  36. }
  37.  
  38. /* sprawdzenie rozszerzenia pliku - dzięki temu mamy pewność, że ktoś nie zapisze na serwerze pliku .php */
  39. $dozwolone_rozszerzenia=array("jpeg", "jpg", "tiff", "tif", "png", "gif");
  40. $plik_rozszerzenie=pathinfo(strtolower($plik_nazwa), PATHINFO_EXTENSION);
  41. if (!in_array($plik_rozszerzenie, $dozwolone_rozszerzenia, true)) {
  42. exit("Niedozwolone rozszerzenie pliku.");
  43. }
  44.  
  45.  
  46. /* przeniesienie pliku z folderu tymczasowego do właściwej lokalizacji */
  47. $plik_nowa_nazwa=date("YmdHisu")."-".rand(1000, 9999);
  48. if (!move_uploaded_file($plik_lokalizacja, $folder_upload."/".$plik_nowa_nazwa.".".$plik_rozszerzenie)) {
  49. exit("Nie udało się przenieść pliku.");
  50. }
  51.  
  52. /* nie było błędów */
  53. echo "Wysyłanie zdjęcia zostało zakończone:)";
  54. $link = $folder_upload."/".$plik_nowa_nazwa.".".$plik_rozszerzenie;
  55.  
  56. setcookie ("link",$link,'0');
  57. }
  58. ?>
  59.  

javascript i formularze to gotowy skrypt znaleziony w internecie
  1.  
  2.  
  3. <script type="text/javascript">
  4.  
  5. function fileSelected() {
  6. var file = document.getElementById('fileToUpload[]').files[0];
  7. if (file) {
  8. var fileSize = 0;
  9. if (file.size > 1024 * 1024)
  10. fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
  11. else
  12. fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
  13.  
  14. document.getElementById('fileName').innerHTML = 'Name: ' + file.name;
  15. document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;
  16. document.getElementById('fileType').innerHTML = 'Type: ' + file.type;
  17. }
  18. }
  19.  
  20. function uploadFile() {
  21. var fd = new FormData();
  22. fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
  23. var xhr = new XMLHttpRequest();
  24. xhr.upload.addEventListener("progress", uploadProgress, false);
  25. xhr.addEventListener("load", uploadComplete, false);
  26. xhr.addEventListener("error", uploadFailed, false);
  27. xhr.addEventListener("abort", uploadCanceled, false);
  28. xhr.open("POST", "upload.php");
  29. xhr.send(fd);
  30. }
  31.  
  32. function uploadProgress(evt) {
  33. if (evt.lengthComputable) {
  34. var percentComplete = Math.round(evt.loaded * 100 / evt.total);
  35. document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
  36. }
  37. else {
  38. document.getElementById('progressNumber').innerHTML = 'unable to compute';
  39. }
  40. }
  41.  
  42. function uploadComplete(evt) {
  43. /* This event is raised when the server send back a response */
  44. alert(evt.target.responseText);
  45. }
  46.  
  47. function uploadFailed(evt) {
  48. alert("There was an error attempting to upload the file.");
  49. }
  50.  
  51. function uploadCanceled(evt) {
  52. alert("The upload has been canceled by the user or the browser dropped the connection.");
  53. }
  54.  
  55.  
  56. </script>
  57. </head>
  58. <form id="form1" enctype="multipart/form-data" method="post" action="upload.php">
  59. <div class="row">
  60. <label for="fileToUpload">Select a File to Upload</label><br />
  61. <input type="file" multiple="multiple" name="fileToUpload[]" id="fileToUpload" onchange="fileSelected();"/>
  62. </div>
  63. <div id="fileName"></div>
  64. <div id="fileSize"></div>
  65. <div id="fileType"></div>
  66. <div class="row">
  67. <input type="button" onclick="uploadFile()" value="Upload" />
  68. </div>
  69. <div id="progressNumber"></div>
  70. </form>
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: 23.08.2025 - 15:06