mirror of https://github.com/kern/filepizza
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
var files = []
|
|
|
|
function handleFileSelect(evt) {
|
|
evt.stopPropagation();
|
|
evt.preventDefault();
|
|
|
|
files = evt.dataTransfer.files; // FileList object.
|
|
|
|
// files is a FileList of File objects. List some properties.
|
|
var output = [];
|
|
metadata = [];
|
|
for (var i = 0, file; file = files[i]; i++) {
|
|
output.push('<li><strong>', escape(file.name), '</strong> (', file.type || 'n/a', ') - ',
|
|
file.size, ' bytes, last modified: ',
|
|
file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() : 'n/a',
|
|
'</li>');
|
|
var metadaton = {"name":escape(file.name),
|
|
"size":file.size,
|
|
"type":file.type || 'n/a',
|
|
"crc" :""}
|
|
metadata.push(metadaton)
|
|
}
|
|
document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
|
|
// post metadata to server
|
|
}
|
|
|
|
function send() { // perhaps need params for peer id or something
|
|
for (var i = 0, file; f = files[i]; i++) {
|
|
for (var bytes = 0; bytes <= file.size; bytes += 1200) {
|
|
endingByte = bytes+1200
|
|
if (endingByte > file.size) {
|
|
endingByte = file.size
|
|
}
|
|
var blob = file.slice(bytes, endingByte);
|
|
// send blob
|
|
}
|
|
}
|
|
}
|
|
|
|
function handleDragOver(evt) {
|
|
evt.stopPropagation();
|
|
evt.preventDefault();
|
|
evt.dataTransfer.dropEffect = 'copy';
|
|
}
|
|
|
|
var dropZone = document.getElementById('drop_zone');
|
|
dropZone.addEventListener('dragover', handleDragOver, false);
|
|
dropZone.addEventListener('drop', handleFileSelect, false);
|