2016-04-10 24 views
0

Modelsiz bir formdan bir resim yüklemek istiyorum. şablonundaModelsiz django formlar

: Ben yapmaya çalıştık görünümlerinde

Upload image 
    <form enctype="multipart/form-data" action="" method="post">{% csrf_token %} 
     <input type="file" name="myfile" id="myfile" /> 
     <input type="submit" value="Upload image"> 
    </form> 

det.html, ben:

def fileupload(request): 

    return responsewrapper('personne/det.html', locals(),request) 

def handle_uploaded_file(f): 
    filename = file._get_name() 
    destination = open('/personne/static/personne/%s'%filename, 'wb+') 
    for chunk in f.chunks(): 
     destination.write(chunk) 
    destination.close() 

def submitfilecontent(request): 
    handle_uploaded_file(request.FILES['myfile']) 
    return HttpResponseRedirect("/successupload") 

hatadır: yöntem verilmiyor (POST) :

urlpatterns += i18n_patterns(
    url(r'^admin/', admin.site.urls, name="admin"), 
    url(r'^$', views.IndexView.as_view(), name="homepage"), 
    url(r'^detect/$', views.DetectView.as_view(), name="detection"), 
    url(r'^login/$', auth_views.login, name="login"), 
    url(r'^logout/$', auth_views.logout, name="logout"), 
    url(r'^register/',views.addUser, name='register'), 

)+ i18n_patterns('', (r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': MEDIA_ROOT, 'show_indexes': True})) 
:/fr//

benim URL'ler algılar

Güncelleme: urls.py içinde

, ben ekledi:

<form enctype="multipart/form-data" action="/submitfilecontent/" method="post"> 

yeni hata: MultiValueDictKeyError: şablonda

url(r'^submitfilecontent/$', submitfilecontent, name="submit-file-content"), 

" 'dosyam'"

+0

Sorun kimlik sorunu gibi görünüyor düşünüyorum. CORS veya CSRF sorunu veya eğik çizgi olmadan basit bir URL gibi bir şey. URL'yi urls.py – AceLearn

+0

'da gösterebilir misiniz? Ayrıca, form etiketindeki action niteliğinin URL'si yok. – AceLearn

+0

Eylemde nelere dikkat etmeliyim? – Lilia

cevap

0

views.py ekleyin:

def submitfilecontent(request): 
    ext_allowed = ['gif', 'jpg', 'jpeg', 'png'] 
    today = datetime.datetime.today() 
    save_dir = 'personne/static/personne/%d/%d/%d/' % (today.year, today.month, today.day) 
    save_path = os.path.join(settings.MEDIA_ROOT, save_dir) 
    save_url = os.path.join(settings.MEDIA_URL, save_dir) 

    if request.method == 'POST': 
     file = request.FILES['myfile'] 
     ext = file.name.split('.').pop() 
     if not os.path.isdir(save_path): 
      os.makedirs(save_path) 

     new_file = '%s.%s' % (int(time.time()), ext) 

     destination = open(save_path+new_file, 'wb+') 
     for chunk in file.chunks(): 
      destination.write(chunk) 
     destination.close() 
     return HttpResponse("Upload Succsefull to URL:%s" % (save_url+new_file) ) 
    else: 
     raise Http404 
1

Lütfen URL'lerde bir URL (aşağıda) ekleyin.

url(r'^submitfilecontent/$', submitfilecontent, name="submit-file-content"), 

ve HTML

, aksiyon url

<form enctype="multipart/form-data" action="/submitfilecontent/" method="post">{% csrf_token %} 
+0

Benim bilgi eksikliği için özür dilerim, şimdi bu hata var: handle_uploaded_file (request.FILES ['myfile']) # hata burada yukarı atar. – Lilia

+0

hata nedir? – AceLearn

+0

MultiValueDictKeyError: "'myfile'" – Lilia