ajax上传csv/excel到服务端,python接收、保存、解析

前端html

js响应事件

function importCsvClick() {
    var uploadEvt = document.getElementById("importCsv").files[0];
    $("#importCsvForm").ajaxSubmit({
        async: false,
        datatype: "json",
        before: function() {},
        success: function(data) {
            alert(data.msg);
        },
        error: function (data) {
            // alert("error data = " + data)
        }
    })
}

python接收、保存、解析csv/excel

def importCsv(self):
	#取得传入的文件
    file_metas = self.request.files['importCsv']
    filepath = None
    for meta in file_metas:
    	#解析文件名
        filename = meta['filename']
        fileType = "." + filename.split(".")[-1] if len(filename.split(".")) > 1 else ""
        newfilename = sys_format.uuid36() + fileType
        #指定保存路径和文件名
        filepath = os.path.join("/root/", newfilename)
        with open(filepath, 'wb+') as up:
            up.write(meta['body'])
    #报错成功后解析
    with open(filepath,'r',encoding='gbk') as f:
        f_csv = csv.reader(f)
        header = next(f_csv)
        #i序号,row读取到的行号
        for i, row in enumerate(f_csv):
            print(i, row)
    # 文件解析完可以自动删除
    # sys_pyutil.remove_file(filepath)
    return {"status": 1, "msg": "导入成功"}

#删除文件方法
def remove_file(filePath):
	if os.path.exists(filePath):
		os.remove(filePath)
		return {"status": 1, "msg": "删除成功"}
	else:
		return {"status": 0, "msg": "文件不存在"}

好,到这里,就是完整的选择、上传、解析、删除流程了

 

你可能感兴趣的:(python)