Downloading the files(which are uploaded) from media folder in django 1.4.3 Downloading the files(which are uploaded) from media folder in django 1.4.3 django django

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.


Just remove / after filename.

Change this:

response['Content-Disposition'] = 'attachment; filename=%s/' % smart_str(file_name) 

to this:

response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name) 


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>