blob: f4e3399865d91d4f63a4184fa03d8052ca250e13 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
var vfs_upload_queue = [];
function dragover(e){
e.preventDefault();
var dropzone = document.getElementById("dropzone");
dropzone.style.backgroundColor = "#E6E6FF";
}
function dragout(e){
var dropzone = document.getElementById("dropzone");
dropzone.style.backgroundColor = "white";
}
function drop(e){
e.preventDefault();
var dropzone = document.getElementById("dropzone");
dropzone.style.backgroundColor = "white";
addToUploadQueue(e.dataTransfer.files);
}
function addToUploadQueue(files){
for(file of files){
try {
reader = new FileReader();
reader.readAsBinaryString(file);
} catch (NS_ERROR_FILE_ACCESS_DENIED) {
//file is a directory. Dropping of directories is only implemented in chrome > v21.
alert("file is a directory. Dropping of directories is only implemented in chrome > v21.");
break;
}
var filelist = document.getElementById("filelist");
var entry = document.createElement("tr");
var filename = document.createElement("td");
filename.appendChild(document.createTextNode(file.name));
var filesize = document.createElement("td");
filesize.appendChild(document.createTextNode(Math.floor(file.size/1024*100)/100+"KB"));
filesize.className = "filesize";
var progressBar = document.createElement("progress");
progressBar.id="progressBar-"+file.name;
progressBar.className="progressBar";
var progressCol = document.createElement("td");
progressCol.className="progressCol";
progressCol.appendChild(progressBar);
var publicCol = document.createElement("td");
var public_at = document.createElement("input");
public_at.type = "checkbox";
public_at.id = "public-"+file.name;
publicCol.appendChild(public_at);
entry.appendChild(filename);
entry.appendChild(filesize);
entry.appendChild(publicCol);
entry.appendChild(progressCol);
filelist.appendChild(entry);
vfs_upload_queue.push(file);
}
}
function upload(){
for(i = 0; i<vfs_upload_queue.length; i++){
document.getElementById("progressBar-"+vfs_upload_queue[i].name).value = 0;
document.getElementById("progressBar-"+vfs_upload_queue[i].name).max = 100;
var xhr = new XMLHttpRequest();
xhr.upload.filename = vfs_upload_queue[i].name;
xhr.open('post', document.URL, true);
var data = new FormData();
data.append("userfile", vfs_upload_queue[i]);
data.append("task", "upload");
if(document.getElementById("public-"+ vfs_upload_queue[i].name).checked){
data.append("share", "PUBLIC");
}
data.append("path", folder);
xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200){
}
};
xhr.upload.addEventListener("progress", function(e){
document.getElementById("progressBar-"+this.filename).value = Math.ceil(e.loaded/e.total)*100;
});
xhr.send(data);
}
}
|