我想使用 ajax 查询上传 CSV 文件。模板:<form id="attendance-form" method="POST" enctype="multipart/form-data"> <input type="file" id="upload-attendance" name="employee-attendance-file"></form>阿贾克斯:$("#upload-attendance").change(function(e) { e.preventDefault(); // disables submit's default action var input = $("#upload-attendance")[0]; var employeeAttendanceFile = new FormData(); employeeAttendanceFile.append("attendance-file", $('#upload-attendance')[0].files[0]); console.log(employeeAttendanceFile); $.ajax({ url: '{% url "attendance:employee-attendance-upload" %}', type: 'POST', headers:{ "X-CSRFToken": '{{ csrf_token }}' }, data: { "employee_attendance_file": employeeAttendanceFile, }, dataType: "json", success: function(data) { data = JSON.parse(data); // converts string of json to object }, cache: false, processData: false, contentType: false, }); });上传 CSV 文件后,当我输入console.log文件变量 ( console.log(employeeAttendanceFile);) 时,没有任何返回。当我从 django 视图中获取 ajax 请求时,它也返回None( print(csv_file))。# views.pyclass ImportEmployeeAttendanceAJAX( View): def post(self, request): csv_file = request.FILES.get("employee_attendance_file") print(csv_file)我究竟做错了什么?
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
通过 FormData 对象上传数据时,您必须直接传递它
data: employeeAttendanceFile,
此外,当您尝试访问文件时,您在上传中为文件设置的名称必须匹配。
csv_file = request.FILES.get("attendance-file")
添加回答
举报
0/150
提交
取消