Ich versuche gerade verzweifelt einen einfachen Upload für ein kleines Web-Interface hinzukriegen, aber alles was ich versuche klappt nicht.
Leider kenne ich mich in HTML/Javascript nicht so gut aus um zu beurteilen ob es nun daran liegt, oder an den cherrypy Server dahinter.
Ich will halt einfach nur eine einzelne Date hochladen, ohne das die Seite wechselt. Meldung das der Upload fertig ist mache ich dann mit einem einfachen alert, das reicht für meinen Fall vollkommen aus. Ich will halt nur nicht das die Seite irgendwie wechselt.
Im HTML Body hab ich dies:
<div>
<label>Upload Sound:</label>
<input id="pathSound" style="width: 80%" type="file" accept=".mp3"/><br>
<button id="uploadSound">Upload</button>
</div>
Im Header im Script Tag dies:
$("#uploadSound").click(function(e) {
if (document.getElementById("pathSound").value=='') {
alert("No file selected!");
e.preventDefault();
return;
}
var cardID = $('#tagID').html();
var file = document.getElementById("pathSound").files[0];
alert( "Tag: " + cardID + " File: " + file);
$.post("/uploadSound", {"cardID": cardID, "myFile": file})
.done(function(res) {
alert("File Saved!");
});
e.preventDefault();
});
Alles anzeigen
Und im Python Code dies:
@cherrypy.expose
def uploadSound(self, cardID='', myFile=None):
print 'uploadSound : ', cardID
print 'uploadSound : ', myFile
return ''
Leider wird die Python Funktion nie aufgerufen. Alle bisherigen Funktionen funktionieren, also ist es prinzipiell schon richtig eingerichtet, halt nur nicht für den Upload. Sende aber bisher auch nur String zwischen Server und Webseite hin und her, vielleicht liegt es ja daran, das es hier Biärdaten einer Datei sind oder so...
Hat jemand schon Erfahrung mit cherrypy und kann mir da einen Tip geben?
Habe mich für cherrypy entschieden, weil es bisher am einfachsten erscheint, aber falls jemand da ein Codebeispiel für ein anderes Web-Framework hat, was vergleichbar einfach zu benutzen ist hab ich auch kein Problem ein anderes Framework zu benutzen, will halt einfach das es funktioniert.