FileStreamer.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:enigma2-plugins 作者: opendreambox 项目源码 文件源码
def render(self, request):
        if 'dir' in request.args:
            dir = unquote(request.args['dir'][0])
        elif 'root' in request.args:
            dir = unquote(request.args['root'][0])
        else:
            dir = ''

        if 'file' in request.args:
            filename = unquote(request.args["file"][0])
            path = dir + filename

            #dirty backwards compatibility hack
            if not os_path.exists(path):
                path = resolveFilename(SCOPE_HDD, filename)

            print "[WebChilds.FileStreamer] path is %s" %path

            if os_path.exists(path):
                basename = filename.decode('utf-8', 'ignore').encode('ascii', 'ignore')

                if '/' in basename:
                    basename = basename.split('/')[-1]

                request.setHeader("content-disposition", "attachment;filename=\"%s\"" % (basename))
                file = static.File(path, defaultType = "application/octet-stream")
                return file.render_GET(request)

            else:
                return resource.NoResource(message="file '%s' was not found" %(dir + filename)).render(request)
        else:
            return resource.NoResource(message="no file given with file={filename}").render(request)

        return server.NOT_DONE_YET
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号