2016-09-16 4 views
0

Я новичок в django, я пытаюсь загрузить более одного файла из браузера и хранить их где-то в компьютере, но я не храню их успешно с этим кодом, пожалуйста, помогите мне найти мой ошибки или улучшения, которые я могу сделать. Заранее благодарим за помощь.загрузить несколько файлов в django

views.py

from django.shortcuts import render 
    from django.http import HttpResponse 
    # Create your views here. 

    def Form(request): 
     return render(request, "index/form.html", {}) 

    def Upload(request): 
     for count, x in enumerate(request.FILES.getlist("files")): 
      def process(f): 
       with open('/Users/benq/djangogirls/upload/media/file_' + str(count), 'wb+') as destination: 
        for chunk in f.chunks(): 
         destination.write(chunk) 
      process(x) 
     return HttpResponse("File(s) uploaded!") 

приложение/urls.py

from django.conf.urls import url 
from index import views 

urlpatterns = [ 
    url(r'^form/$', views.Form), 
    url(r'^upload/$', views.Upload) 
] 

form.html

<form method="post" action="../upload/" entype="multipart/form-data"> {% csrf_token %} 
<input type="file" name="files" multiple /> 
<input type="submit" value="Upload" /> 

+0

Вы гавань» t упоминал что-то не так с вашим кодом, любая трассировка стека или неожиданное поведение может помочь отладить его. – SpiXel

+0

Я не получаю никакого файла в своем хранилище –

+0

на моем пути к компьютеру, который указан здесь/Пользователи/benq/djangogirls/upload/media/ –

ответ

2

моя модель, чтобы сохранить документ

class Document(models.Model): 
    file = models.FileField('Document', upload_to='mydocs/') 

    @property 
    def filename(self): 
    name = self.file.name.split("/")[1].replace('_',' ').replace('-',' ') 
    return name 
    def get_absolute_url(self): 
    return reverse('myapp:document-detail', kwargs={'pk': self.pk}) 

вы можете попробовать Джанго создать представление в моем коде я использую этот DocumentCreateView

class DocumentCreate(CreateView): 
    model = Document 
    fields = ['file'] 

    def form_valid(self, form): 
    obj = form.save(commit=False) 
    if self.request.FILES: 
     for f in self.request.FILES.getlist('file'): 
      obj = self.model.objects.create(file=f) 

    return super(DocumentCreate, self).form_valid(form) 

моего форму HTML файл

<script> 
    $(document).ready(function(){ 
    $('#id_file').attr("multiple","true"); 

    }) 
</script> 
<form method="post" enctype="multipart/form-data" action="">{% csrf_token %} 
{{ form.file }} 
<input type="submit" value="upload" /> 

</form> 
Смежные вопросы