cherrypy + jquery ajax文件上传

时间:2012-10-16 09:01:42

标签: jquery cherrypy

现在我使用此代码进行上传而不使用ajax

@cherrypy.expose
def upload(self, file):
    uload_path = pm.get_package_download_dir()
    file_name = 'some.file'

    if not isdir(uload_path):
        try:
            makedirs(uload_path)
        except ValueError:
            raise cherrypy.HTTPError(400, 'SOME_ERROR')        

    uload_path = uload_path + os.path.sep + file_name                

    size = 0
    all_data = ''
    while True:
        data = file.file.read(8192)
        all_data += data
        if not data:
            break
        size += len(data)

    try:
        saved_file=open(uload_path, 'wb') 
        saved_file.write(all_data) 
        saved_file.close()
    except ValueError:
        raise cherrypy.HTTPError(400, 'SOME ERROR')

    print 'OK'

但我找不到任何使用Cherrypy和Jquery上传ajax文件的例子。 请帮忙!

1 个答案:

答案 0 :(得分:0)

最后,我通过iframe解决了这个问题

<iframe id="iframe" name="iframe" style="display:none;"></iframe>
<form id="upload" action="./upload" enctype="multipart/form-data" method="post" target="iframe">
  <input type="file" id="file" name="file">
  <input type="submit">
</form>      

$('#iframe').load(function(){
    console.log($(this).contents().find('#uploaded').val());
});

但我仍然无法获得上传进度条。 有什么建议吗?