-
Notifications
You must be signed in to change notification settings - Fork 0
/
uploadcgi_1.py
146 lines (96 loc) · 3.26 KB
/
uploadcgi_1.py
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/usr/bin/python
import cgi, cgitb
import os
import time
import shutil
filepath ="/usr/lib/cgi-bin/uploads/"
resultpath="/usr/lib/cgi-bin/results/"
recipepath="/usr/lib/cgi-bin/recipes/"
savepath ="/usr/lib/cgi-bin/savefiles/"
f=open(savepath +'recipe.txt','r')
recipe=f.read()
f.close()
recipes=recipe.split(',')
cgitb.enable()
print "Content-Type: text/html"
print
print "<HTML><BODY>"
#print recipes[0]+'x<br>'
# start with the Buttons
print '<form action="/cgi-bin/uploadcgi_1.py" method="post" enctype="multipart/form-data">'
print "Select Operation :<br>"
print '<select name="operation">'
print '<option value="classify">classify</option>'
print '<option value="stylize_gatys">stylize_gatys</option>'
print '<option value="stylize_msg">stylize_msg</option>'
print '<option value="style_add">style_add</option>'
print '<option value="style_train">style_train</option>'
print '<option value="loopback">loopback</option>'
#print '<option selected value="' , recipes[0].strip(), '">',recipes[0].strip(),'</option>'
print '</select><br><br>'
print "Input styledir name (brad,sandy...) :<br>"
print '<input type="text" name="style" id="style"><br><br>'
print '</select><br><br>'
print "Select image to upload :<br>"
print '<input type="file" name="fileToUpload" id="IDfileToUpload"><br><br>'
# select render options
#print 'Select style : candy, composition_vii, feathers, la_muse mosaic, starry_night, the_scream, udnie, wave <br>'
#print '<input type="text" name="style" id="IDstyle"><br><br>'
print "Press Go to upload image and apply operation :<br>"
print '<input type="submit" value="Go" name="submit"><br>'
print "</form>"
form = cgi.FieldStorage()
#print form
fileitem = form["fileToUpload"]
operation = form["operation"].value
style = form["style"].value
print '> operation=' + operation + '<br>'
print '> style=' + style + '<br>'
print '> file=' + fileitem.filename + '<br>'
#file transfer
if fileitem.filename: #it has a name
filepath+=fileitem.filename
if fileitem.file: #it has data.
with file(filepath, 'w') as outfile:
outfile.write(fileitem.file.read())
print "<br>"
print ">The image you uploaded<br>"
print "<img src=/uploads/"+fileitem.filename+">"
print "<br>"
print "<br>"
#now write the recipe file to trigger the action
recipefile=recipepath+'recipe.txt'
f=open(recipefile,'w')
f.write(
operation + ','
+ style + ','
+ filepath + ','
+ resultpath + fileitem.filename
)
f.close()
shutil.copy(recipefile,savepath )
# wait for source file to be consumed
# while os.path.isfile(filepath):
# time.sleep(.25)
# print("+")
# print "<br><br>"
#now wait for the recipe to be consumed
done=0
while not os.path.isfile(resultpath+fileitem.filename):
time.sleep(.25)
print(".")
done +=1
if done > 100 : break
print "<br>"
if operation== 'classify':
print ">The classification <br>"
print "<img src=/results/"+fileitem.filename+">"
if operation== 'stylize':
print ">The stylized image<br>"
print "<img src=/results/"+fileitem.filename+">"
else:
print "No File Name"
print "<br>"
print "<br>"
cgi.test()
print "</BODY></HTML>"