From: Elliot Smith Date: Tue, 7 Jun 2016 15:37:29 +0000 (+0100) Subject: toaster: open image files in binary mode when sending in response X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4d67968d0ec1d5ff53cdc0dccf6a7869c89597b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git toaster: open image files in binary mode when sending in response The view code for downloading image files used the "r" flag to read the file, then used the open file object to form the HTTP response. While this worked in Python 2, Python 3 appears to be more strict about this sort of thing, and Django throws a UnicodeDecodeError when a file opened this way is used in a response. Open the file with the "b" flag (binary mode) so that Django can correctly convert the binary file handle to an HTTP response. Signed-off-by: Elliot Smith Signed-off-by: Ed Bartosh --- diff --git a/lib/toaster/toastergui/views.py b/lib/toaster/toastergui/views.py index 9121ea90fd5..5ceeb6be3ed 100755 --- a/lib/toaster/toastergui/views.py +++ b/lib/toaster/toastergui/views.py @@ -2338,7 +2338,7 @@ if True: ) if file_name and response_file_name: - fsock = open(file_name, "r") + fsock = open(file_name, "rb") content_type = MimeTypeFinder.get_mimetype(file_name) response = HttpResponse(fsock, content_type = content_type)