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
| # -*- coding: cp1252 -*-
from PIL import Image
import os, time
class Html():
def __init__(self):
self.secureuser = "off"
self.path = 'c:/'
self.file_path=""
self.variables = {"var": "init"}
def resized_img(self, filepath):
size=128,128
img = Image.open(filepath)
img.thumbnail(size, Image.ANTIALIAS)
tmpfile_path = "./tmp/"
tmpfile_path += os.path.basename(filepath)
tmpfile_path += ".tmp"
try:
img.save(tmpfile_path, "JPEG")
except:
img.save(tmpfile_path, "GIF")
img.close()
return True
def filetype(self, this_file):
#retourne le type de fichier
def pages(self, req):
if req.count("?") > 0:
#ici du code qui permet de récupérer les variables GET (self.variables={var:value})
else:
page = req
##Pour voir les dossiers:
elif page == "/listdir":
if self.variables.has_key("path"):
#ici on récupère la variable path (c:/ par default)
#############################################
########Préchargement des miniatures#########
#############################################
for image in os.listdir(self.path):
if os.path.isfile(self.path+image):
if str(self.filetype(self.path+image)) == "Image":
if not os.path.exists("./tmp/"+os.path.basename(self.path+image)+".tmp"):
print "Not exist: "+"./tmp/"+os.path.basename(self.path+image)+".tmp"
self.resized_img(self.path+image)
time.sleep(1)
#############################################
result = " "
#on liste les dossier en premier (osef, ça marche)
for this_dir in os.listdir(self.path):
if os.path.isdir(self.path+this_dir):
result+="\t\t<tr><td><a href='/listdir?path="+self.path+this_dir+"'>"+this_dir+"</a></td></tr>\n"
#Ici les fichier (dont les images)
for this_file in os.listdir(self.path):
if os.path.isfile(self.path+this_file):
result+="\t\t<tr><td><a href='/file?path="+self.path+this_file+"'>"+this_file+"</a></td><td>"+str(os.path.getsize(self.path+this_file))+"</td><td>"+str(self.filetype(self.path+this_file))+"</td>"
result+="<td>"
if str(self.filetype(self.path+this_file)) == "Image":
result+="""<img src="file_miniimg_"""+this_file+""""/>"""
else:
result+="."
result+="</td></tr>\n"
result +="\t</table></td></tr>\n</table>\n"
result += """<!- -End List Directory -->\n"""
return result
##Pour lire la mini-image
elif "/file_miniimg_" in page:
imgfile = ("./tmp/"+page[14:len(page)]+".tmp").replace("%20", " ")
image = open(imgfile, "rb")
result = image.read()
image.close()
return result |
Partager