本文共 1777 字,大约阅读时间需要 5 分钟。
前端通过FormData传递文件,后端通过 file = request.FILES.get('fileContent') 与 xlrd.open_workbook读取
不用form表单
$("#detail_submit").on("click", function () { //创建FormData用于存储文件内容 var dict = new FormData(); dict.append("fileName", document.getElementById('file_up').value); dict.append("fileContent", document.getElementById('file_up').files[0]); dict.append('csrfmiddlewaretoken', '{ { csrf_token }}') $.ajax({ url: '/batch_pay_deal/', type: 'post', data: dict, processData: false,// 告诉jQuery不要去处理发送的数据(必须设置) contentType: false, // 告诉jQuery不要去设置Content-Type请求头(必须设置) {#dataType: 'JSON',#} success: function (data) { alert(data['result']) if (data['result']===('ok') ){ alert(11) $(".mainbox").load('/batch_pay_success/') } } }) })
路由:
views:
def batch_pay_deal(request): if request.method =="POST": # 获取普通input标签值,即文件名 filename = request.POST.get('fileName') # 获取file类型的input标签值,即文件内容 file = request.FILES.get('fileContent') data = xlrd.open_workbook( filename=None, file_contents=file.read()) # 读取表格 table = data.sheets()[0] # 第一张表单 row = table.nrows for i in range(1, row): # 跳过第0行 col = table.row_values(i) # deal_date = col[1] recieve_account = str(int(col[11])) recieve_name = col[12] money = float(col[13]) return JsonResponse({'result':'ok'})
转载地址:http://acwsi.baihongyu.com/