Πρόβλημα με Jquery και upload εικόνας

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από dpa » 19 Φεβ 2010 13:26

Παιδιά στο παρακάτω tutorials

http://www.freestuff.gr/forums/viewtopic.php?t=46741

πρόσθεσα ένα πεδίο uploadfile για το ανέβασμα μιας φωτογραφίας.

Αλλά όταν πατάω submit δεν ανεβάζει την photo

Γιατί ????

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από Basilakis » 19 Φεβ 2010 16:10

Γιατί πρέπει να βάλεις και την διαδικασία για την αποστολή εικόνας στον server όχι μόνο το textvbox

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από dpa » 19 Φεβ 2010 16:14

Γιατί χρησιμοποιώ το jquery για την καταχώρηση ενός προϊόντος

πχ coca cola και ταυτόχρονα θέλω να ανεβάσω και μια εικόνα.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από fafos » 19 Φεβ 2010 16:16

Mathete thn HTML kala prin proxorhsete se alla kolpa, alla emeis ta leme emeis ta akoume..

mia forma gia na anevazei arxeia thelei to enctype="multipart/form-data" mesa sto <form> element..

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από dpa » 19 Φεβ 2010 16:20

File Fafo to exw auto.

Άκου λίγο αν χρησιμοποιήσω το jquery δεν μου ανεβάζει την εικόνα. Αν αφαιρέσω το jquery και κάνω απλό submit μου την ανεβάζει κανονικά.


<fieldset>
<legend>Εικόνα είδους:</legend>
<div align="left">
Ανεβάστε εικόνα 400 X 300 pixel:<input name="imagefile" type="file" id="imagefile" />
</div>
</fieldset><br />


<script type="text/javascript">
// Post Form with post
$(document).ready(function() {

$().ajaxStart(function() {
$('#loading').show();
$('#result').hide();
}).ajaxStop(function() {
$('#loading').hide();
$('#result').fadeIn('slow');
});

$('#FrmNewProduct').submit(function() {
$.ajax({
type: 'POST',
url: $(this).attr('action'),
data: $(this).serialize(),
success: function(data) {
$('#result').html(data);
}
})
return false;

});

}); // end document

</script>


<form name="FrmNewProduct" id="FrmNewProduct" method="POST" enctype="multipart/form-data" action="ins.php">

τα έχω κανονικά. Αν δεν το κάνω με jquery θα την ανεβάσει την εικόνα.

Εγώ θέλω να το κάνω με jquery ώστε να μην καλέσω άλλη σελίδα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από fafos » 19 Φεβ 2010 16:30

dose ena echo $_FILES['imagefile']['name']; sto php arxeio na deis an pairnei to arxeio... vasika prepei na mas deikseis ton kodika tou php arxeiou..

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από dpa » 19 Φεβ 2010 16:33

Όταν κάνω post με jquery δεν το παίζει το αρχείο όταν δεν το κάνω το κάνει κανονικά.

Μήπως με το data: $(this).serialize(), δεν παίρνει αρχεία για Upload ???

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από nbc » 19 Φεβ 2010 21:30

Υπό κανονικές συνθήκες, δηλαδή αυτές που προσπαθείς, δεν μπορείς να κάνεις upload με ajax. Είναι το πρωτόκολλο τέτοιο που το καθιστά αδύνατο. Οπότε, αδίκως παιδεύεσαι...

Υπάρχει, όμως, ένα κόλπο και είναι ο μόνος τρόπος. Είναι λίγο περίπλοκο, αλλά αν ψάξεις θα βρεις κώδικα.

Χονδρικά, η διαδικασία έχει ως εξής:

- Δημιουργείς ένα κρυφό iframe, με src "about:blank", το id του οποίου θέτεις ως target στη φόρμα σου
- Αφήνεις τη φόρμα να κάνει submit κανονικά - άνευ ajax (δηλαδή επιστρέφεις true από τον handler σου). Από τη στιγμή που ο server απαντάει σε iframe, το πρωτόκολο λειτουργεί κανονικά.
- Χρησιμοποιείς την onload του iframe για να ειδοποιήσει μια ρουτίνα σου, στην οποία περνά το id του.
- Η ρουτίνα σου θα πρέπει να βρει το iframe και το περιεχόμενο του. Προσοχή, θα κληθεί περισσότερες από μία φορά. Αρχικά κατά τη δημιουργία της, και εν συνεχεία μετά το πάρε-δώσε του server. Θα εξετάσεις το href του iframe για να κρίνεις πότε έχεις την πραγματική απάντηση από το server.
- Με του που έχεις απάντηση, πράτεις ανάλογα.

Η όλη διαδικασία, αν υλοποιηθεί σωστά, είναι transparent. Ο χρήστης, δηλαδή, θα νομίζει πως το upload έγινε με ajax. Επαναλαμβάνω, το hidden iframe είναι ο μόνος τρόπος για "ajax" upload. Η άλλη λύση είναι το flash.

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Πρόβλημα με Jquery και upload εικόνας

Δημοσίευση από dpa » 20 Φεβ 2010 18:17

Mperdema megalo

Euxaristo pantos

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: ss13 και 0 επισκέπτες