POST загрузить файл в CherryPy - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь загрузить файл на сервер CherryPy, но не получаю ожидаемый тип объекта на стороне сервера:

HTML

...
<label class="btn btn-default btn-file">Browse
   <input type="file" id="fpUploadSystemImage">
</label>
...

JS / JQUERY

$("#fpUploadConfig").change(function(event){
    var fpUploadConfig = $("#fpUploadConfig")[0];
    if ('files' in fpUploadConfig){
        if(fpUploadConfig.files.length == 0){
            console.log("uploadFiles.files.length == 0");
        }
        else{
            var configFile = fpUploadConfig.files[0];
            console.log(configFile);
            uploadConfigFile(configFile);
        }
    }
});

function uploadSystemImageFile(file){
    var fd = new FormData();
    fd.append('systemImageFile', file);
    jQuery.ajax({
        type: 'POST',
        url:"/uploadSystemImageFile",
        data: fd,
        processData: false, 
        contentType: false, 
        success: function(returnval) {
            alert("New System File uploaded");
         }
    });
}

PYTON внутри объекта CherryPy

@cherrypy.expose
@cherrypy.tools.json_out()
def uploadSystemImageFile(self, systemImageFile=None):
    print("<<uploadSystemImageFile>>", type(systemImageFile))

Ответ, который я получаю:

<<uploadSystemImageFile>> <class 'cherrypy._cpreqbody.Part'>

Как мне извлечь сам файл и сохранить на диск?Я хотел бы оставить HTML-часть такой, как есть, без использования «FORM-> SUBMIT», чтобы она соответствовала остальной части HTML-документа.

...