Я использую Django для разработки основных веб-страниц, который обрабатывает uploading
и downloading
файлов в/из media
папкиЗагрузка файлов (которые загружены) из папки мультимедиа в Джанго 1.4.3
На самом деле файлы успешно загружены в папку медиа, а также файлы загружаются успешно но underscore
добавляются к имя_файлу как last charater
как file_one.pdf_
, file_two.pdf_
, file_three.txt_
и т.д.,
Ниже приведены мои коды
urls.py
urlpatterns = patterns('',
url(r'^upload$', 'learn_django.views.upload'),
url(r'^files_list$', 'learn_django.views.files_list'),
url(r'^download/(?P<file_name>.+)$', 'learn_django.views.download'),
)
if settings.DEBUG:
urlpatterns = patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
) + urlpatterns
views.py
def upload(request):
......
....
return render_to_response('uploads_form.html', {'form': form},context_instance=RequestContext(request))
def files_list(request):
return render_to_response('files_list.html',{'total_files':os.listdir(settings.MEDIA_ROOT),'path':settings.MEDIA_ROOT},context_instance=RequestContext(request))
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
files_list.html
<table border="1" colspan="2" width="100%">
<tr>
<th width="60%">File</td>
<th width="40%">Download</td>
</tr>
{% for file in total_files %}
<tr>
<td width="60%">{{file}}</td>
<td width="40%" align="center"><a href="/download/{{file}}" style="text-decoration:None">Download here</a></td>
</tr>
{% endfor %}
</table>
Таким образом, в приведенных выше кодов, когда файл успешно загружен в медиа, он будет перенаправлен на files_list.html
через files_list
просмотр функций, отображающих общее количество файлов в виде таблицы с ссылкой для загрузки рядом с каждым именем файла.
Поэтому, когда мы нажимаем на ссылку привязки загрузки, соответствующий файл будет загружен путем выполнения функции download
.
Так файл загружается успешно, но underscore
_
является добавление к последней из имени файла, как file_one.pdf_
, file_two.pdf_
, file_three.txt_
и др.,.
Так может кто-нибудь пожалуйста, дайте мне знать, что случилось в моей выше загрузки кода функции и почему underscore
является добавление к file name
и как удалить этот underscore
из имени файла ...