Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Input $_FILES upload - error #4, o co chodzi?
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


Jak w temacie wywala mi error #4 (UPLOAD_ERR_NO_FILE – Value: 4; No file was uploaded) - to akurat wiem, szkoda, że nigdzie nie mogę znaleźć DLACZEGO? kiedy sprawdzam plik, wychodzi mi:
  1. Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )


wyglada to tak:

  1. // Dodajemy pliki
  2. $maxSize = 2048*1024; // 2 MB
  3. if (is_uploaded_file($_FILES['photoFront']['tmp_name']) && $_FILES['photoFront']['size'] <= $maxSize)
  4. {
  5. $tempFile = $_FILES['photoFront']['tmp_name'];
  6. $targetFile = './db/users/'.$logUser['id'].'/'.$_FILES['photoFront']['name'];
  7. move_uploaded_file($tempFile, $targetFile);
  8.  
  9. $newPomiar['photoFront'] = $_FILES['photoFront']['name'];
  10. }
  11. if (is_uploaded_file($_FILES['photoSide']['tmp_name']) && $_FILES['photoSide']['size'] <= $maxSize)
  12. {
  13. $tempFile = $_FILES['photoSide']['tmp_name'];
  14. $targetFile = './db/users/'.$logUser['id'].'/'.$_FILES['photoSide']['name'];
  15. move_uploaded_file($tempFile, $targetFile);
  16.  
  17. $newPomiar['photoSide'] = $_FILES['photoSide']['name'];
  18. }
  19. if (is_uploaded_file($_FILES['photoBack']['tmp_name']) && $_FILES['photoBack']['size'] <= $maxSize)
  20. {
  21. $tempFile = $_FILES['photoBack']['tmp_name'];
  22. $targetFile = './db/users/'.$logUser['id'].'/'.$_FILES['photoBack']['name'];
  23. move_uploaded_file($tempFile, $targetFile);
  24.  
  25. $newPomiar['photoBack'] = $_FILES['photoBack']['name'];
  26. }
  27. print_r($_FILES['photoFront']);
  28. print_r($_FILES['photoSide']);
  29. print_r($_FILES['photoBack']);


  1. <form id="formAdd" action="#" method="POST" enctype="multipart/form-data" style="margin-top: 20px;">
  2. <input type="hidden" name="action" value="add" />
  3. <div class="row">
  4. <div class="col-sm-4">
  5. <div class="panel">
  6. <div id="imageFront" class="u-image" style="background-image: url('./img/photoFront.jpg');"></div>
  7. <div class="title text-justify" style="margin-top: 12px; font-size: 13px; line-height: 16px;"><b>Zdjęcie od przodu</b><br><br>Pamiętaj, że nie musisz pokazywać swojej twarzy, ważne jest aby oświetlenie było odpowiednie.</div>
  8. <span id="spanFront" class="btn-file text-center">Dodaj <input id="photoFront" name="photoFront" type="file" onchange="checkFile('imageFront', 'spanFront', 'photoFront')" /></span>
  9. </div>
  10. </div>
  11. <div class="col-sm-4">
  12. <div class="panel">
  13. <div id="imageSide" class="u-image" style="background-image: url('./img/photoSide.jpg');"></div>
  14. <div class="title text-justify" style="margin-top: 12px; font-size: 13px; line-height: 16px;"><b>Zdjęcie od boku</b><br><br>Nie napinaj brzucha ani nie nabieraj za dużo powietrza. Zachowaj prostą postawę.</div>
  15. <span id="spanSide" class="btn-file text-center">Dodaj <input id="photoSide" name="photoSide" type="file" onchange="checkFile('imageSide', 'spanSide', 'photoSide')" /></span>
  16. </div>
  17. </div>
  18. <div class="col-sm-4">
  19. <div class="panel">
  20. <div id="imageBack" class="u-image" style="background-image: url('./img/photoBack.jpg');"></div>
  21. <div class="title text-justify" style="margin-top: 12px; font-size: 13px; line-height: 16px;"><b>Zdjęcie od tyłu</b><br><br>Napnij przy okazji ręce i pokaż się w całej okazałości.<br><br></div>
  22. <span id="spanBack" class="btn-file text-center">Dodaj <input id="photoBack" name="photoBack" type="file" onchange="checkFile('imageBack', 'spanBack', 'photoBack')" /></span>
  23. </div>
  24. </div>
  25. </div>
  26. ...

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
shpaque
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


viking dziekuje za uwagę. Szczerze mówiąc pomijając, że jq musi zaladowac sobie bilbiotekę, sądziłem że działa szybciej niz pure js... W takim razie zostawiamy to tak jak jest. Jedno pytanie mi pozostaje czysto teoretyczne, ale nawiazujace do mojego skryptu. Istnieje sposób, zeby cokolwiek wykonalo sie zanim przeleci cala petla? patrzac na moj skrypt chodzi mi o jeden konkret:

kiedy ktos wrzuca plik powyzej 2mb, text z bledem pojawia sie od razu, ale kolor (styl) zmieniajacy button na czerwony wykonuje sie dopiero po wyswietleniu miniatury - to troche glupio wyglada dla perfeksjonistow mimo ze trwa ulamki sekundy, ale czy jest taka mozliwosc, zeby button niezaleznie od tego ile bedzie robiel prewiewke obrazka od razu zmienil kolor?

...po drobnych modyfikacjach teraz wygląda to tak:

  1. function checkFile(image, span, photo) {
  2. var x = document.getElementById(photo);
  3. var maxSize = 2097152; // 2 MB
  4. if ('files' in x) {
  5. if (x.files.length > 0) {
  6. document.getElementById(image).style.backgroundImage = 'url(\'' + window.URL.createObjectURL(x.files[0]) + '\')';
  7. if (x.files[0].size > maxSize) {
  8. document.getElementById(span).parentElement.classList.add('red');
  9. document.getElementById(span).innerHTML = 'Zmień plik, jest za duży<br><small>(' + x.files[0].name + ' - ' + parseFloat(x.files[0].size/(1024*1024)).toFixed(2) + ' MB)</small>';
  10. }
  11. else {
  12. document.getElementById(span).parentElement.classList.remove('red');
  13. document.getElementById(span).innerHTML = 'Zmień plik<br><small>(' + x.files[0].name + ' - ' + parseFloat(x.files[0].size/(1024*1024)).toFixed(2) + ' MB)</small>';
  14. }
  15. }
  16. }
  17. }


Ten post edytował shpaque 20.09.2018, 13:09:09
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: 29.12.2025 - 15:36