[Twisted-web] How can i download very big size file about more than 100M?

Young-gue Park jackup at gmail.com
Mon Nov 29 19:51:53 MST 2004


I face some problem


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
from twisted.internet import defer, reactor
from twisted.web import resource, server

import os, sys

class FileDownloadResource(resource.Resource):

     	isLeaf = 1
	fName = 'very big file size'
                path = 'some_path'

     	def render(self, request):
		d = True
		if d:
			d = "attachment"
		else:
			d = "inline"

		request.setHeader("Content-type", "application/x-msdownload");
		request.setHeader("Content-Disposition", d + "; filename=" + self.fName);
		request.setHeader("Content-Length", ' ' +
str(self.getFileSize(self.path + self.fName)));
		request.setHeader("Content-Transfer-Encoding", "binary");
		request.setHeader("Pragma", "no-cache");
		request.setHeader("Expires", "0");

		# print "entered render"
		d = defer.Deferred()
		d.addCallback(self.printResult, request)
		d.addErrback(self.printError, request)
        	return server.NOT_DONE_YET

	def printError(failure, request):
		request.write(str(failure))
		request.finish()

	def printResult(self, request):
		for line in open(self.path + self.fName, 'r'):
			request.write(line)
		request.finish()

	def getFileSize(self, file):
		size = os.path.getsize(file)
		return size

resource = FileDownloadResource()
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

I don't know what am i doing

please give any hint



More information about the Twisted-web mailing list