mirror of https://github.com/kern/filepizza
Create super basic drag/drop UI.
parent
779b826d74
commit
56d4b4a9c8
@ -0,0 +1,10 @@
|
||||
#drop_zone {
|
||||
border: 1.5px solid #bbb;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
padding: 25px;
|
||||
text-align: center;
|
||||
font: 20pt 'Helvetica-Light';
|
||||
color: #bbb;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
<head>
|
||||
<link rel="stylesheet" href="index.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="drop_zone">Drop Files Here</div>
|
||||
<output id="list"></output>
|
||||
</body>
|
||||
|
||||
<script src="index.js"></script>
|
||||
@ -0,0 +1,48 @@
|
||||
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);
|
||||
Loading…
Reference in New Issue