Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]input type="file" sprawdzenie
Forum PHP.pl > Forum > Przedszkole
Randallmaster
Witam,

1. W jaki sposób mogę sprawdzić za pomocą jqeury czy dodany plik nie jest większy od 500kb oraz czy jest to plik img bądź png?

2. W jaki sposób wczytać w inpucie plik który wcześniej dodałem z bazy danych: <input type="file" name="image" value="<?= htmlspecialchars($d[llogo']); ?>" />, po dodaniu do value nie działa.
nospor
ad1) Nie możesz
ad2) Nie da się
Randallmaster
To jaki sposób mogę sprawdzić czy dodany plik nie jest większy od 500kb oraz czy jest to plik img bądź png?
nospor
W php rzecz jasna....
Randallmaster
nospor wiesz o co mi chodzi ale nie chcesz pomóc... źle zadaje pytanie? Myślę że odpowiedź jest jedna. Jesteś naprawdę mądrym człowiekiem wiesz bardzo dużo, ale takie odpowiedzi naprawdę denerwują człowieka... Jeżeli cię uraziłem sorry ale takie jest moje zdanie. Jeśli możesz nie dawaj mi ostrzeżenia...

W jaki sposób mogę za pomocą php sprawdzić czy dodany plik nie jest większy od 500kb oraz czy jest to plik img bądź png?
Czy takie sprawdzenie może obyć się bez przeładowania strony, czy w momencie zapisu do bazy za pomocą funkcji if??
nospor
Cytat
nospor wiesz o co mi chodzi ale nie chcesz pomóc... źle zadaje pytanie? Myślę że odpowiedź jest jedna. Jesteś naprawdę mądrym człowiekiem wiesz bardzo dużo, ale takie odpowiedzi naprawdę denerwują człowieka... Jeżeli cię uraziłem sorry ale takie jest moje zdanie. Jeśli możesz nie dawaj mi ostrzeżenia...
Piłeś coś? Pytasz się czy w js można zrobić to i to. Grzecznie ci odpowiadam, że nie, a Ty mi jakieś żale walisz, że ja ci pomóc nie chcę..... o co kaman?
_Borys_
ad1.
  1. <!DOCTYPE HTML>
  2. <meta http-equiv="content-type" content="text/html" charset="utf-8"/>
  3. <script type="text/javascript">
  4. function getFileInfo(){
  5. fileSize = document.getElementById('fileinput').files[0].size;
  6. fileType = document.getElementById('fileinput').files[0].type;
  7. if(fileSize/1024 > 500){
  8. alert('Sorry no bonus, upload file is too big : '+Math.round(fileSize/1024)+' kB');
  9. }
  10. if(fileType != 'image/png'){
  11. alert('Wrong type of file');
  12. }
  13. }
  14. </head>
  15.  
  16. <form enctype="multipart/form-data" action="" method="post">
  17. <input type="hidden" name="MAX_FILE_SIZE" value="512000"/>
  18. Załaduj plik
  19. <p>PLIK: <input type="file" name="zalacznik" id="fileinput"/></p>
  20. <input type="submit" name="submit" value="Załaduj" onclick="getFileInfo()"/>
  21. <input type="hidden" name="submitted" value="TRUE" />
  22. </form>
  23. </body>
  24. </html>
nospor
@Borys czy to jest dostępne w każdej przeglądarce? Z tego co kojarze, to raczej nie działa to wszędzie. Poza tym sprawdzanie po stronei serwera i tak musi być. Js to tylko feature.
matiit
@OP

Tak naprawdę obecnie jest taka możliwość w javascripcie.
Niestety na pewno nie działa to wszędzie. Sprawdź sobie gdzie to działa i czy Ci to odpowiada.
  1. <form action='#' onsubmit="return false;">
  2. <input type='file' id='fileinput'>
  3. <input type='button' value='Load' >
  4. </form>
  5.  
  6. <script ...>
  7. input = document.getElementById('fileinput');
  8.  
  9. //przypisz wywolanie alerta do klikniecia buttona, bo zanim wczytasz plik nie bedzie tablicy files oczywiście
  10. alert('Your file size is: '+input.files[0].size);
nospor
Cytat
Niestety na pewno nie działa to wszędzie.
Dlatego pisałem że nie ma smile.gif Jak coś nie działa wszędzie to na grzyba się w to bawić smile.gif Proste sprawdzenie w php i po sprawie.
matiit
Ale warto na przyszłość o tym wiedzieć smile.gif
A sprawdzenie w php
  1. if(isset($_FILES['file']) {
  2. if($_FILES['file']['size'] > 10485760) { //10 MB
  3. // plik za duzy
  4. } else {
  5. // plik dobrej wielkosci
  6. }
  7. }


Zakładając, że input z plikiem ma name file
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.