Μεταφόρτωση αρχείων με UPLOAD() και πρόοδο
Το UPLOAD('POST /url/', formdata, callback, onprogress) στέλνει ένα FormData (η διεύθυνση ξεκινά με τη μέθοδο HTTP, όπως στο AJAX()) και καλεί το callback με την αναλυμένη απάντηση. Το προαιρετικό τέταρτο όρισμα παίρνει το ποσοστό όσο τρέχει η μεταφόρτωση. Χτίστε το FormData από ένα πεδίο αρχείου (new FormData() και append('file', input.files[0]))· η πλευρά του διακομιστή είναι η διαδρομή @upload της συνταγής για τη μεταφόρτωση αρχείων.
exports.install = function() {
ROUTE('POST /upload/ @upload <5mb', upload);
};
function upload($) {
var file = $.files[0];
file.read(function(err, buffer) {
$.json({ filename: file.filename, text: buffer.toString('utf8'), title: $.body.title });
});
}<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jComponent</title>
<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
<script>
var form = new FormData();
form.append('title', 'My note');
form.append('file', new Blob(['hello from the browser'], { type: 'text/plain' }), 'note.txt');
var progress = [];
UPLOAD('POST /upload/', form, function(response) {
SET('uploaded', response);
}, function(percentage) {
progress.push(percentage);
});
</script>
</body>
</html> Δοκιμάστε το στον browser σας
Επεξεργαστείτε το παράδειγμα και εκτελέστε το. Εκτελείται σε απομονωμένο πλαίσιο στον browser σας· τίποτα δεν στέλνεται στον διακομιστή μας.
Προεπισκόπηση