Пример #1
0
    def _process( self ):
        self._notify('materialDownloaded', self._file)

        if isinstance(self._file, Link):
            self._redirect(self._file.getURL())
        elif self._file.getId() != "minutes":
            #self._req.headers_out["Accept-Ranges"] = "bytes"
            self._req.headers_out["Content-Length"] = "%s"%self._file.getSize()
            self._req.headers_out["Last-Modified"] = "%s"%formatdate(time.mktime(self._file.getCreationDate().timetuple()))
            cfg = Config.getInstance()
            mimetype = cfg.getFileTypeMimeType( self._file.getFileType() )
            self._req.content_type = """%s"""%(mimetype)
            dispos = "inline"

            try:
                if self._req.headers_in['User-Agent'].find('Android') != -1:
                    dispos = "attachment"
            except KeyError:
                pass

            self._req.headers_out["Content-Disposition"] = '%s; filename="%s"' % (dispos, self._file.getFileName())

            if cfg.getUseXSendFile() and self._req.headers_in['User-Agent'].find('Android') == -1:
                # X-Send-File support makes it easier, just let the web server
                # do all the heavy lifting
                return self._req.send_x_file(self._file.getFilePath())
            else:
                return self._file.readBin()
        else:
            p = files.WPMinutesDisplay(self, self._file )
            return p.display()
Пример #2
0
 def _process(self):
     signals.event.material_downloaded.send(self._conf, resource=self._file)
     if isinstance(self._file, Link):
         self._redirect(self._file.getURL())
     elif self._file.getId() == "minutes":
         p = files.WPMinutesDisplay(self, self._file)
         return p.display()
     else:
         return send_file(self._file.getFileName(),
                          self._file.getFilePath(),
                          self._file.getFileType(),
                          self._file.getCreationDate())
Пример #3
0
 def _process(self):
     self._notify('materialDownloaded', self._file)
     if isinstance(self._file, Link):
         self._redirect(self._file.getURL())
     elif self._file.getId() == "minutes":
         p = files.WPMinutesDisplay(self, self._file)
         return p.display()
     else:
         return send_file(self._file.getFileName(),
                          self._file.getFilePath(),
                          self._file.getFileType(),
                          self._file.getCreationDate())
Пример #4
0
 def _process(self):
     self._notify('materialDownloaded', self._file)
     if isinstance(self._file, Link):
         self._redirect(self._file.getURL())
     elif self._file.getId() == "minutes":
         p = files.WPMinutesDisplay(self, self._file)
         return p.display()
     else:
         set_file_headers(self._req,
                          fname=self._file.getFileName(),
                          last_modified=self._file.getCreationDate(),
                          size=self._file.getSize(),
                          data=self._file.readBin(),
                          ftype=self._file.getFileType(),
                          fpath=self._file.getFilePath())
         return send_file(self._req, self._file)
Пример #5
0
 def _process(self):
     if self._file.getId() != "minutes":
         #self._req.headers_out["Accept-Ranges"] = "bytes"
         self._req.headers_out[
             "Content-Length"] = "%s" % self._file.getSize()
         self._req.headers_out["Last-Modified"] = "%s" % formatdate(
             time.mktime(self._file.getCreationDate().timetuple()))
         cfg = Config.getInstance()
         mimetype = cfg.getFileTypeMimeType(self._file.getFileType())
         self._req.content_type = """%s""" % (mimetype)
         self._req.headers_out[
             "Content-Disposition"] = """inline; filename="%s\"""" % self._file.getFileName(
             )
         return self._file.readBin()
     else:
         p = files.WPMinutesDisplay(self, self._file)
         return p.display()