Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload + Pasek postępu.
Forum PHP.pl > Forum > PHP
moto0095
Witam.
Znalazłem ostatnio skrypt który pokazuje pasek postępu.
I na stronie z przykładem [TUTAJ] jest wszystko ok, jak zrobiłem to na
swojej stronie to w ogóle nie ładuje się plik i nie przesyła.
Nie wiem dlaczego.

KOD:

upload_form.php
  1. <?php $uid = md5(uniqid(rand())); ?>
  2. <html>
  3. <head>
  4. <title>Upload Progess Bar</title>
  5. <style type="text/css">
  6. #pb_outer {
  7. height: 20px;
  8. border: 1px inset #000000;
  9. width: 80%;
  10. margin: 20px auto;
  11. display: none;
  12. }
  13. #pb_inner {
  14. font-weight: bold;
  15. color: #FFFFFF;
  16. background-color: #003399;
  17. height: 20px;
  18. width: 1px;
  19. text-align: center;
  20. }
  21. </style>
  22. <script type="text/javascript">
  23. var HttpRequestObject = false;
  24. if(window.XMLHttpRequest) {
  25. HttpRequestObject = new XMLHttpRequest();
  26. }
  27. else if(window.ActiveXObject) {
  28. HttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  29. }
  30. function startProgress(uid) {
  31. document.getElementById('upload').style.display = 'none';
  32. document.getElementById('pb_outer').style.display = 'block';
  33. setTimeout('getProgress("' + uid + '")', 1000);
  34. }
  35. function getProgress(uid) {
  36. if(HttpRequestObject) {
  37. HttpRequestObject.open('GET', 'getprogress.php?uid=' + uid, true);
  38. HttpRequestObject.onreadystatechange = function() {
  39. if(HttpRequestObject.readyState == 4 && HttpRequestObject.status == 200) {
  40. var progress = HttpRequestObject.responseText;
  41. document.getElementById('pb_inner').style.width = progress + '%';
  42. document.getElementById('pb_inner').innerHTML = progress + '%';
  43. if(progress < 100) {
  44. setTimeout('getProgress("' + uid + '")', 100);
  45. }
  46. else {
  47. document.getElementById('pb_inner').innerHTML = 'Upload Complete!';
  48. }
  49. }
  50. }
  51. HttpRequestObject.send(null);
  52. }
  53. }
  54. </script>
  55. </head>
  56. <body>
  57. <form onSubmit="startProgress('<?php echo $uid; ?>');" action="upload.php" method="post" enctype="multipart/form-data" name="upload" id="upload" target="upload_frame">
  58. <input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo $uid; ?>" />
  59. <input type="file" name="file" id="file" />
  60. <input type="submit" name="submit" id="submit" value="Upload!" />
  61. </form>
  62. <div id="pb_outer">
  63. <div id="pb_inner"></div>
  64. </div>
  65. <iframe style="display: none" id="upload_frame" name="upload_frame"></iframe>
  66. </body>
  67. </html>



upload.php
  1. <?php
  2. if($_FILES['file']['error'] == UPLOAD_ERR_OK){
  3. $path = '/var/www/uploads/';
  4. $path .= basename($_FILES['file']['name']);
  5. if(move_uploaded_file($_FILES['file']['tmp_name'], $path)){
  6. // upload successful
  7. }
  8. }
  9. ?>


getprogress.php
  1. <?php
  2. header('Expires: Tue, 08 Oct 1991 00:00:00 GMT');
  3. header('Cache-Control: no-cache, must-revalidate');
  4.  
  5. if(isset($_GET['uid'])){
  6. $status = apc_fetch('upload_' . $_GET['uid']);
  7. echo round($status['current']/$status['total']*100);
  8. }
  9. ?>
luck
Twój kod:
  1. <?php
  2. if($_FILES['file']['error'] == UPLOAD_ERR_OK){
  3. // ciach...
  4. if(move_uploaded_file($_FILES['file']['tmp_name'], $path)){
  5. // upload successful
  6. }
  7. }
  8. ?>
Dlaczego cały czas zakładasz, że wszystko pójdzie ok? Najwyraźniej nie poszło, a Ty nawet nie wyświetlasz błędów, żeby się przekonać co jest nie tak.
moto0095
To nic nie zmieni.
Coś w kodzie jest nie tak??

Albo, czy zna ktoś (równie prosty jak ten) skrypt pasku postępu questionmark.gifquestionmark.gif
rzymek01
a masz zainstalowane rozszerzenie apc?
moto0095
A jak to sprawdzić questionmark.gif
jareeny
phpinfo()
moto0095
Nie wiem czy jest zainstalowany acp nadal:(
Oto link to phpinfo()
http://server17.000webhost.com/phpinfo.php

Ale wydaje mi się że nie sad.gif.
rzymek01
sam podajesz link do artykułu, z którego zaczęrpnąłeś kod, a nie przeczytałeś go w całości?
na pierwszej stronie jest wszystko powiedziane (http://www.ultramegatech.com/blog/2008/12/creating-upload-progress-bar-php/)
moto0095
A powiedział by mi ktoś jak zainstalować APC questionmark.gif
rzymek01
naprawdę wszystko to już zostało omówione w sieci, zajrzyj sobie do manuala PHP (http://www.php.net/manual/en/apc.installation.php)
moto0095
Zrezygnowałem jednak z tego.
Ale mam inne pytanie jak mam sobie najprostszy skrypt upladu to jak zrobić tak aby wyświetlił się obrazek ładowania (np: load.gif), ale od razu, bez przeładowania strony?questionmark.gif?
Albo po prostu ile % pliku się już przesłało bez paska?questionmark.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.