Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS][PHP] Pasek postępu do upladu plików, XMLHttpRequest upload file
yarek12
post 10.12.2011, 12:08:10
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 5.08.2010

Ostrzeżenie: (10%)
X----


Witam, korzystając z tego poradnika: http://www.matlus.com/html5-file-upload-with-progress/ napisałem pasek postępu, powiem tak, działa rewelacyjnie! Aż... Do momentu wrzucenia na serwer, podejrzewam że jest to wina linki odpowiadającej za otwieranie upload.php.

Oto mój kod:

test.php
  1. <!DOCTYPE html>
  2. <title>Upload Files using XMLHttpRequest - Minimal</title>
  3.  
  4. <script type="text/javascript">
  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. document.getElementById("prg").style.width = percentComplete.toString() + '%';
  37. }
  38. else {
  39. document.getElementById('progressNumber').innerHTML = 'unable to compute';
  40. }
  41. }
  42.  
  43. function uploadComplete(evt) {
  44. /* This event is raised when the server send back a response */
  45. alert("Success upload");
  46. }
  47.  
  48. function uploadFailed(evt) {
  49. alert("There was an error attempting to upload the file.");
  50. }
  51.  
  52. function uploadCanceled(evt) {
  53. alert("The upload has been canceled by the user or the browser dropped the connection.");
  54. }
  55.  
  56. </script>
  57. </head>
  58. <form id="form1" method="post" enctype="multipart/form-data" action="?">
  59. <div class="row">
  60. <label for="fileToUpload">Select a File to Upload</label><br />
  61. <input type="file" 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()" name="upload" value="Upload" />
  68. </div>
  69. <div id="progressNumber"></div>
  70. <div id="frame" style="width: 400px; border: 1px solid #000; height: 10px;"><div id="prg" style="background: red; height: 10px; width: 0%;"></div></div>
  71. </form>
  72. </body>
  73. </html>


Upload.php:
  1. <?php
  2. $file_tmp = $_FILES['fileToUpload']['tmp_name'];
  3. $file_name = $_FILES['fileToUpload']['name'];
  4. $file_size = $_FILES['fileToUpload']['size'];
  5. $file_mime = $_FILES['fileToUpload']['type'];
  6. if (is_uploaded_file($file_tmp)) {
  7. move_uploaded_file($file_tmp, 'files/'.$file_name);
  8. echo 1;
  9. }
  10. else {
  11. echo 0;
  12. }
  13. ?>
  14.  
  15.  
  16. Orientujących się w temacie bardzo proszę o pomoc.
  17. Pozdrawiam

[php][/php]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:07