Μπορώ να χρησιμοποιήσω τον ακόλουθο κώδικα jQuery για να εκτελέσω μεταφόρτωση αρχείου χρησιμοποιώντας τη μέθοδο POST ενός αιτήματος ajax;
$.ajax({
type: "POST",
timeout: 50000,
url: url,
data: dataString,
success: function (data) {
alert('success');
return false;
}
});
Αν είναι δυνατόν, χρειάζεται να συμπληρώσω το τμήμα data
; Είναι ο σωστός τρόπος; Εγώ μόνο POST το αρχείο στην πλευρά του διακομιστή.
Έχω ψάξει στο google, αλλά αυτό που βρήκα ήταν ένα plugin ενώ στο σχέδιό μου δεν θέλω να το χρησιμοποιήσω. Τουλάχιστον προς το παρόν.
η μεταφόρτωση αρχείων δεν είναι δυνατή μέσω ajax. Μπορείτε να ανεβάσετε αρχείο, χωρίς να ανανεώσετε τη σελίδα χρησιμοποιώντας IFrame. μπορείτε να δείτε περισσότερες λεπτομέρειες εδώ
ΠΡΟΗΓΟΥΜΕΝΗ ΕΝΗΜΕΡΩΣΗ:
Με το XHR2, υποστηρίζεται η μεταφόρτωση αρχείων μέσω AJAX. Π.χ. μέσω του αντικειμένου FormData, αλλά δυστυχώς δεν υποστηρίζεται από όλα/παλιά προγράμματα περιήγησης.
Η υποστήριξη του FormData ξεκινά από τις ακόλουθες εκδόσεις φυλλομετρητών γραφείου. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+
Για περισσότερες λεπτομέρειες, δείτε σύνδεσμος MDN
Το ανέβασμα AJAX είναι όντως δυνατό με την XMLHttpRequest(). Δεν απαιτούνται iframes. Μπορεί να εμφανιστεί η πρόοδος της φόρτωσης.
Για λεπτομέρειες δείτε: Απάντηση https://stackoverflow.com/a/4943774/873282 στην ερώτηση https://stackoverflow.com/questions/4856917/jquery-upload-progress-and-ajax-file-upload.
Περισσότερες λεπτομέρειες στην ανάρτηση του ιστολογίου μου: http://blog.manki.in/2011/08/ajax-fie-upload.html.