2012-02-27 19 views
9

ho filefield nel mio modello django:come scaricare un file filefield in vista Django

file=models.FileField(verbose_name=u'附件',upload_to='attachment/%Y/%m/%d',max_length=480) 

Questo file verrà visualizzato nella pagina web con il link "http://test.com.cn/home/ projects/89/attachment/2012/02/24/sscsx.txt "

Quello che voglio fare è quando l'utente fa clic sul collegamento al file, scaricherà il file automaticamente; Qualcuno può dirmi come fare questo nella visualizzazione?

Grazie in anticipo!

risposta

17

si può provare il seguente codice, partendo dal presupposto che object_name è un oggetto di quel modello:

filename = object_name.file.name.split('/')[-1] 
response = HttpResponse(object_name.file, content_type='text/plain') 
response['Content-Disposition'] = 'attachment; filename=%s' % filename 

return response 

Vedere la seguente parte della documentazione Django sull'invio di file direttamente: https://docs.djangoproject.com/en/dev/ref/request-response/#telling-the-browser-to-treat-the-response-as-a-file-attachment

+0

grazie, funziona – Angelia

+0

come hai ottenuto object_name in quella vista? quali parametri URL hai usato? – yretuta

+0

Il nome_oggetto non ha importanza in quanto rappresenta semplicemente un oggetto Modello Django. Puoi recuperare l'oggetto come più ti piace. –

Problemi correlati