yee.. upload progress works
This commit is contained in:
11
code/app.py
11
code/app.py
@@ -87,13 +87,10 @@ def upload(name = None, password = None):
|
|||||||
return "Overwrite forbidden", 403
|
return "Overwrite forbidden", 403
|
||||||
file.save(filename)
|
file.save(filename)
|
||||||
set_rights(filename)
|
set_rights(filename)
|
||||||
response = current_app.response_class(
|
if 'from_gui' in request.form:
|
||||||
response="File uploaded",
|
if request.form['from_gui'] == "true":
|
||||||
status=307,
|
return redirect(url_for('list_view',name=name))
|
||||||
mimetype="text/plain"
|
return "File uploaded\n", 200
|
||||||
)
|
|
||||||
response.headers["Location"] = url_for('list_view',name=name)
|
|
||||||
return response
|
|
||||||
else:
|
else:
|
||||||
return "Use the 'file' variable to upload",400
|
return "Use the 'file' variable to upload",400
|
||||||
|
|
||||||
|
|||||||
@@ -113,3 +113,14 @@ tr:nth-child(even) {
|
|||||||
margin-left: 2em;
|
margin-left: 2em;
|
||||||
font-size: medium;
|
font-size: medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#progress {
|
||||||
|
margin: 4px 4px 4px 4px;
|
||||||
|
}
|
||||||
|
#progress.success {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progress.failure {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,3 +10,53 @@ function index_form_enter(event) {
|
|||||||
function index_form_submit() {
|
function index_form_submit() {
|
||||||
window.location = window.location + "/list/" + document.getElementById("index_form_name").value;
|
window.location = window.location + "/list/" + document.getElementById("index_form_name").value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function UploadFile(file) {
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
if (xhr.upload) {
|
||||||
|
|
||||||
|
var o = document.getElementById("progress");
|
||||||
|
xhr.upload.addEventListener("progress", function(e) {
|
||||||
|
var pc = parseInt((e.loaded / e.total * 100));
|
||||||
|
o.innerHTML = "Uploading: " + pc + "%";
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
// file received/failed
|
||||||
|
xhr.onreadystatechange = function(e) {
|
||||||
|
if (xhr.readyState == 4) {
|
||||||
|
progress.className = (xhr.status == 200 ? "success" : "failure");
|
||||||
|
if (xhr.status == 200) {
|
||||||
|
location = location;
|
||||||
|
} else {
|
||||||
|
o.innerHTML = xhr.response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// start upload
|
||||||
|
xhr.open("POST", document.getElementById("upload_form").action, true);
|
||||||
|
xhr.setRequestHeader("X-FILENAME", file.name);
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append('name', document.getElementById("list_upload_name").value);
|
||||||
|
formData.append('file', file);
|
||||||
|
xhr.send(formData);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// file selection
|
||||||
|
function FileSelectHandler(e) {
|
||||||
|
|
||||||
|
// fetch FileList object
|
||||||
|
var files = e.target.files || e.dataTransfer.files;
|
||||||
|
|
||||||
|
// process all File objects
|
||||||
|
for (var i = 0, f; f = files[i]; i++) {
|
||||||
|
UploadFile(f);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
<div id=list_menu>
|
<div id=list_menu>
|
||||||
{% if upload %}
|
{% if upload %}
|
||||||
<div id=list_upload>
|
<div id=list_upload>
|
||||||
<form action={{ url_for('upload') }} method=post enctype=multipart/form-data>
|
<form id="upload_form" action={{ url_for('upload') }} method=post enctype=multipart/form-data>
|
||||||
<input type=hidden name=name value="{{ name|safe }}" />
|
<input id="list_upload_name" type=hidden name=name value="{{ name|safe }}" />
|
||||||
<input id="list_upload_select" type=file name=file onchange="document.getElementById('list_upload_button').disabled = false;"><br>
|
<input type=hidden name=from_gui value="true" />
|
||||||
<input id="list_upload_button" type=submit value=Upload disabled>
|
<input id="list_upload_select" type=file name=file onchange="FileSelectHandler(event)"><br>
|
||||||
|
<!--input id="list_upload_button" type=submit value=Upload disabled-->
|
||||||
|
<div id="progress"></div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
Reference in New Issue
Block a user