Downloading the files(which are uploaded) from media folder in django 1.4.3
Your code is right but there is one redundant character in download
:
def download(request,file_name): file_path = settings.MEDIA_ROOT +'/'+ file_name file_wrapper = FileWrapper(file(file_path,'rb')) file_mimetype = mimetypes.guess_type(file_path) response = HttpResponse(file_wrapper, content_type=file_mimetype ) response['X-Sendfile'] = file_path response['Content-Length'] = os.stat(file_path).st_size response['Content-Disposition'] = 'attachment; filename=%s/' % smart_str(file_name) return response
At last line the filename attribute has a trailing slash (/): filename=%s
/
Which causes the problem. Remove this slash and it works.
These are all not required.In HTML you can download the media file by using <a download="{video.URL}">
For example:
<button class="btn btn-outline-info"><a href="{{result.products.full_video.url}}" download="{{result.products.full_video.url}}" style="text-decoration:None" class="footer_link">Download<i class="fa fa-download"></i></a></button>