2016-04-30 6 views
0

ich eine Datei mit Ajax hochladen möchten:
HTML:Upload-Datei in Pyramide mit Jquery

<input type="file" name="photo" id="photo" /> 
<input type="button" value="Upload" id="btnUpload" /> 

avascript:

$(document).ready(function(){ 
     var file_to_upload; 

    $('#photo').change(function() { 
      file_to_upload = this.files[0]; 
     }); 

     $('#btnUpload').click(function() { 
       var formData = new FormData(); 
       formData.append('photo', file_to_upload); 
       $.ajax({ 
        url: '/post_file', 
        type: 'POST', 
        data: {'photo' : formData}, 
        cache: false, 
        contentType: false, 
        processData: false, 
        enctype: "multipart/form-data", 
        success: function() { 
        } 
       }, 'json'); 
      }); 
    }); 

und in py-Datei:

@view_config(route_name='ajax_post_file', renderer='json') 
def live_search(request): 
post_data = request.POST 

aber die request.Post sagt:

NoVars: Nicht eine HTML-Formular Vorlage (Content-Type: text/plain)

Antwort

0

Versuchen Sie, diese in Ajax Wechsel rufen

data: formData, 
+0

ja, es funktioniert. Danke – Mehrdad

0

ich nicht testen können, aber ich habe einige Fehler sehen. Tryt dieser Dekorateur

@view_config(name='post_file', renderer='json') 
+0

ich Ihre Idee versucht, aber es ist nicht der Grund. Eigentlich habe ich einen Router, der die Anfrage an diese Funktion sendet. config.add_route ('ajax_post_file', '/ post_file') – Mehrdad

+0

Ich verstehe. Mit meinem Weg müssen Sie die Route nicht hinzufügen. Nur ein bisschen sauberer für mich. Aber das beantwortet deine Frage nicht; ;) –

Verwandte Themen