前端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": "文件不存在"}
好,到这里,就是完整的选择、上传、解析、删除流程了