Exemplo n.º 1
0
 def delete(self, fileid):
     try:
         userfile = DBSession.query(UserFile).filter_by(id=fileid).one()
     except:
         return redirect("/")
     DBSession.delete(userfile)
     return redirect("/")
Exemplo n.º 2
0
 def save(self, userfile):
     forbidden_files = [".js", ".htm", ".html", ".mp3"]
     for forbidden_file in forbidden_files:
         if userfile.filename.find(forbidden_file) != -1:
             return redirect("/")
     filecontent = userfile.file.read()
     new_file = UserFile(filename=userfile.filename, filecontent=filecontent)
     DBSession.add(new_file)
     DBSession.flush()
     redirect("/view/"+str(new_file.id))
Exemplo n.º 3
0
 def setup(self):
     try:
         new_attrs = {}
         new_attrs.update(self.attrs)
         new_attrs.update(self.do_get_dependencies())
         self.obj = self.klass(**new_attrs)
         DBSession.add(self.obj)
         DBSession.flush()
         return self.obj
     except:
         DBSession.rollback()
         raise
Exemplo n.º 4
0
 def view(self, fileid):
     try:
         userfile = DBSession.query(UserFile).filter_by(id=fileid).one()
     except:
         redirect("/")
     content_types = {
         'display': {'.png': 'image/jpeg', '.jpeg':'image/jpeg', '.jpg':'image/jpeg', '.gif':'image/jpeg', '.txt': 'text/plain'},
         'download': {'.pdf':'application/pdf', '.zip':'application/zip', '.rar':'application/x-rar-compressed'}
     }
     for file_type in content_types['display']:
         if userfile.filename.endswith(file_type):
             response.headers["Content-Type"] = content_types['display'][file_type]
     for file_type in content_types['download']:
         if userfile.filename.endswith(file_type):
             response.headers["Content-Type"] = content_types['download'][file_type]
             response.headers["Content-Disposition"] = 'attachment; filename="'+userfile.filename+'"'
     if userfile.filename.find(".") == -1:
         response.headers["Content-Type"] = "text/plain"
     return userfile.filecontent
Exemplo n.º 5
0
 def index(self):
     current_files = DBSession.query(UserFile).all()
     return dict(current_files=current_files)
Exemplo n.º 6
0
 def test_query_obj(self):
     obj = DBSession.query(self.klass).one()
     for key, value in self.attrs.iteritems():
         assert_equals(getattr(obj, key), value)
Exemplo n.º 7
0
 def tearDown(self):
     DBSession.rollback()