Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Uploader plików - błąd w warunku
sadistic_son
post 30.05.2023, 10:57:02
Post #1





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cześć,
Zainteresowałem się prostym uploaderem plików stąd. Miałby on wgrywać pliki bez przeładowywania strony. I tutaj pierwsze pytanie - czy można bezkarnie używać pływających ramek - iframe? Pamiętam jak uczyłem się php na początku obecnego wieku, to już wtedy było w książce, żeby raczej odchodzić o używania iframe. Jak to jest obecnie?


Ale do rzeczy. W JavaScript ogólnie raczkuję. Ni epotrzafię znaleźć pczyczyny dlaczego nie wykonuje się warunek if (success == 1){ , czyli jest komunikat There was an error during file upload!.


index.html:
  1. <script type="text/javascript">
  2. function startUpload(){
  3. document.getElementById('uploadProcess').style.visibility = 'visible';
  4. document.getElementById('uploadForm').style.visibility = 'hidden';
  5. return true;
  6. }
  7.  
  8. function stopUpload(success,uploadedFile){
  9. var result = '';
  10. if (success == 1){
  11. result = '<span class="sucess-msg">The file was uploaded successfully!<\/span><br/><br/>';
  12. //Uploaded file preview
  13. var embed = document.getElementById("UploadedFile");
  14. var clone = embed.cloneNode(true);
  15. clone.setAttribute('src',uploadedFile);
  16. embed.parentNode.replaceChild(clone,embed);
  17. }else {
  18. result = '<span class="error-msg">There was an error during file upload!<\/span><br/><br/>';
  19. }
  20. document.getElementById('uploadProcess').style.visibility = 'hidden';
  21. document.getElementById('uploadForm').innerHTML = result + '<label>File: <input name="myfile" type="file" size="30" /><\/label><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>';
  22. document.getElementById('uploadForm').style.visibility = 'visible';
  23. return true;
  24. }
  25.  
  26. </head>
  27. <form action="upload.php" method="post" enctype="multipart/form-data" target="uploadTarget" onsubmit="startUpload();" >
  28. <p id="uploadProcess">Uploading...<br/><img src="assets/loader.gif" /><br/></p>
  29. <p id="uploadForm" align="center"><br/>
  30. File: <input name="myfile" type="file" size="30" />
  31. </label>
  32. <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
  33. </label>
  34. </p>
  35. <iframe id="uploadTarget" name="uploadTarget" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
  36. </form>
  37. <!-- Uploaded file preview -->
  38. <div>
  39. <embed id="UploadedFile" src="" width="390px" height="160px">
  40. </div>
  41. </body>
  42. </html>


upload.php:
  1. <?php
  2. $success = 0;
  3. $uploadedFile = '';
  4.  
  5. //File upload path
  6. $uploadPath = 'uploads/';
  7. $targetPath = $uploadPath . basename( $_FILES['myfile']['name']);
  8.  
  9. if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $targetPath)){
  10. $success = 1;
  11. $uploadedFile = $targetPath;
  12. }
  13.  
  14. sleep(1);
  15. ?>
  16. <script type="text/javascript">window.top.window.stopUpload(<?php echo $success; ?>,'<?php echo $uploadedFile; ?>');</script>



--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post 30.05.2023, 11:17:24
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




masz mase kodow jak sie robi upload przy pomocy ajax, lepiej skorzystaj z tego.

co do twojego kodu to w pliku upload.php ustawiasz $success na 1 albo 0. wiec sprawdz czy tam sie cos nie chrzani. W pierwszej kolejnosci sprawdz co zawiera $_FILES bo tam moze byc poprostu kod bledu.
Jesli to nie pomoze to usun malpe z move_uploaded_file


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sadistic_son
post 30.05.2023, 14:51:52
Post #3





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


$_FILES zawiera to:
Kod
array(1) {
  ["myfile"]=>
  array(5) {
    ["name"]=>
    string(15) "test.txt"
    ["type"]=>
    string(10) "text/plain"
    ["tmp_name"]=>
    string(14) "/tmp/phpSSYl8d"
    ["error"]=>
    int(0)
    ["size"]=>
    int(88172)
  }
}

Tutaj chyba wygląda wszystko ok.
Natomiast po wywaleniu @ sprzed move_uploaded_file też żadnego błędu nie zwraca, jedynie w konsoli, że nie znaleziono loader.gif, którego po prostu nie stworzyłem jeszcze.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post 30.05.2023, 15:12:13
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




A masz wlaczone wyswietlanie wszystkich bledow?
No i upewnij sie co napewno zawiera $success

var_dump($success);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sadistic_son
post 30.05.2023, 16:48:08
Post #5





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Tak, jest włączone wyświetlanie błędów, ale dodałem jeszcze error_reporting(E_ALL); na początku.

A takie głupie pytanie... gdzie to var_dump($succes) wrzucić żeby zobaczyć rezultaty? Bo po wrzuceniu w upload.php nie wyświetla nigdzie tego. Właściwie to nie do końca rozumiem chyba co tu się dzieje - odsyłam przez formularz do upload.php ale żadne echo z niego się nigdzie nie wyświetla. Natomiast formularz przechodzi, bo przecież $_FILES, które występuje tylko w upoad.php pokazuje co ma w sobie.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post 30.05.2023, 17:03:20
Post #6





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No to jak wyswietliles $_FILES skoro nie wiesz gdzie to sie wyswietla?

W konsolie przegldarki w zakladce networ masz tam wszystikie calle jakie robisz, i tam klikasz na dany request i widzisz co zwraca


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sadistic_son
post 6.06.2023, 11:17:31
Post #7





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Wypada odpisać, że problem rozwiązany. Nie wykonywała się ta linijka:
  1. if(move_uploaded_file($_FILES['myfile']['tmp_name'], $targetPath)){
bo przecież katalog uploads znajduje się poziom wyżej. Trywialny błąd ze złą ścieżką.

Ale w takim razie dlaczego nie pokazywało żadnego błędu mimo, że na początku dałem error_reporting(E_ALL); ?


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post 6.06.2023, 11:29:07
Post #8





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Mowilem ci jak sprawdzic co zwraca call do IFRAME. Zrobiles to? Spradziles zakladke NETWORK w konsoli przegladarki?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sadistic_son
post 6.06.2023, 12:11:35
Post #9





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Ech, że też tutaj na forum nie ma możliwości uploadu obrazka sad.gif

Na moje to nie pokazuje błędu. Zobacz:
https://yourimageshare.com/ib/t3fyxHaR5u

Zmieniłem ścieżkę na złą. Oczywiście jest błąd-komunikat zdefiniowany przeze mnie, ale w konsoli go nie widzę.

Ten post edytował sadistic_son 6.06.2023, 12:12:38


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post 6.06.2023, 13:18:17
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Ty nie masz go widziec w consoli, tylko ty masz kliknac na dany request i tam w body/response bedzie pokazane co idzie z tego request do ciebie. Nie boj sie klikac samodzielnie gdzie popadnie, nie pracujesz w elektrowni jadrowej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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: 28.03.2024 - 20:31