diff -u django/core/servers/basehttp.py django/core/servers/basehttp.py
|
|
|
|
| 313 | 313 | in the event loop to iterate over the data, and to call |
| 314 | 314 | 'self.close()' once the response is finished. |
| 315 | 315 | """ |
| 316 | | if not self.result_is_file() and not self.sendfile(): |
| 317 | | for data in self.result: |
| 318 | | self.write(data) |
| 319 | | self.finish_content() |
| | 316 | for data in self.result: |
| | 317 | self.write(data) |
| | 318 | self.finish_content() |
| 320 | 319 | self.close() |
| 321 | 320 | |
| 322 | 321 | def get_scheme(self): |
diff -u django/http/__init__.py django/http/__init__.py
|
|
|
|
| 393 | 393 | raise Exception("This %s instance cannot tell its position" % self.__class__) |
| 394 | 394 | return sum([len(chunk) for chunk in self._container]) |
| 395 | 395 | |
| | 396 | class HttpResponseSendFile(HttpResponse): |
| | 397 | def __init__(self, path_to_file, content_type=None): |
| | 398 | HttpResponse.__init__(self) |
| | 399 | if not content_type: |
| | 400 | from mimetypes import guess_type |
| | 401 | content_type = guess_type(path_to_file)[0] |
| | 402 | if content_type == None: # probably windows w/o proper mimetype lookup |
| | 403 | content_type = "application/octet-stream" |
| | 404 | self['Content-Type'] = content_type |
| | 405 | self.sendfile_filename = path_to_file |
| | 406 | self.block_size = 8192 |
| | 407 | self.status_code = 200 |
| | 408 | # compatibility; fake being a regular HttpResponse if needed |
| | 409 | self['Content-Length'] = os.path.getsize(path_to_file) |
| | 410 | self._container = open(path_to_file) |
| | 411 | self._is_string = False |
| | 412 | |
| 396 | 413 | class HttpResponseRedirect(HttpResponse): |
| 397 | 414 | status_code = 302 |
| 398 | 415 | |