-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
104 lines (97 loc) · 2.77 KB
/
main.py
File metadata and controls
104 lines (97 loc) · 2.77 KB
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
95
96
97
98
99
100
101
102
103
104
from flask import Flask, jsonify, request, redirect, session, url_for
import process
app = Flask(__name__)
app.secret_key = b'not_so_secret.predictable'
@app.route("/")
def hello():
return "hello"
@app.route("/show")
def show():
if 'content' not in session:
redirect(url_for('upload'))
else:
txt = session['content']
ret = process.to_json(txt)
print(ret)
return "<pre>" + ret + "</pre>"
@app.route("/upload/", methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
filebuf = request.files.to_dict(flat=False)
if filebuf is None:
return redirect(request.url)
else:
filename = list(filebuf.keys())[0]
filebuf = filebuf[filename][0]
if filebuf.filename.lower().endswith('.eml'):
btxt = filebuf.read()
txt = btxt.decode("iso2022_jp")
session['content'] = txt
return redirect(url_for('show'), code=303)
return redirect(request.url)
return '''
<!doctype html>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<title>Upload File</title>
<h1>Upload File</h1>
<form method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload></p>
</form>
<style>
.droparea {
width: 200px;
height: 200px;
border-style: solid;
border-width: 3px;
border-color: red;
float: left;
line-height: 200px;
text-align: center;
}
</style>
<div class="container">
<div class="droparea">Drop Here</div>
<div class="tablearea" id="tablearea"></div>
</div>
<div class="result" id="result">
</div>
<script>
var dragHandler = function(evt){
evt.preventDefault();
};
var dropHandler = function(evt){
evt.preventDefault();
var files = evt.originalEvent.dataTransfer.files;
var file = files[0];
var formData = new FormData();
formData.append('file', file);
var postData = {
url : "/upload",
type : "POST",
dataType : "file",
data : formData,
contentType : false,
processData : false,
};
$.ajax(
postData
).done(function(text) {
console.log(text);
});
<!--
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload/', true);
xhr.onload = function (e) { };
xhr.send(formData);
-->
};
var dropHandlerSet = {
dragover: dragHandler,
drop: dropHandler
};
$(".droparea").on(dropHandlerSet);
</script>
'''
if __name__ == "__main__":
app.run(host='0.0.0.0')