ich django bin mit den grundlegenden Web-Seiten zu entwerfen, die die uploading
und downloading
der Dateien zum/vom media
Ordner behandeltHerunterladen die Dateien (die hochgeladen werden) von Medienordnern in django 1.4.3
Tatsächlich ist die Dateien werden erfolgreich in den Medien Ordner hochgeladen, auch werden die Dateien erfolgreich heruntergeladen, aber ein underscore
wird dem datei_name als wie file_one.pdf_
last charater
angefügt, file_two.pdf_
, file_three.txt_
usw.
Hier sind meine Codes
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>
So in den oben genannten Codes, wenn eine Datei erfolgreich hochgeladen In den Medien wird es zuumgeleitetbis files_list
Ansicht Funktionen, die die Gesamtzahl der Dateien in Form von Tabelle mit einem Download-Link neben jedem Dateinamen anzeigt.
Wenn wir also auf den Download-Anker-Link klicken, wird die entsprechende Datei durch Ausführen der Funktion download
heruntergeladen.
So ist die Datei heruntergeladen wird erfolgreich, aber ein underscore
_
zur letzten der Dateiname wird anhängt wie file_one.pdf_
, file_two.pdf_
, file_three.txt_
etc.,.
Also kann mir jemand bitte lassen Sie wissen, was in meinem obigen Download-Funktion Code falsch ist und warum underscore
ist das Anhängen an den file name
und wie diese underscore
aus dem Dateinamen ...