ajax 接收excel,Django生成Excel如何通过ajax接收并另存为。

求救,求救。

1.通过ajax请求后,计算后返回一个Excel文件。

2.返回格式如下

response = FileResponse(open(dirpath_temp_dir+"\"+filename,'rb'))

response['Content-Type'] = 'application/octet-stream'

response['Content-Disposition'] = 'attachment;filename="mm.xlsx"'

response["Access-Control-Expose-Headers"] = "Content-Disposition"

print(response)

return response

3 。返回 response 对象后,前端ajax函数success如何接收文件,并另存为?

有知道的小伙伴么?请赐教。感谢!

前端代码:

$('#btnExportExcel').click(function () {

let formData = new FormData();

formData.append('btnname', "btnExportExcel")

{#formData.append('myfile',$("#uploadFile")[0].files[0]);#}

$.ajax({

url: '',

type: 'post',

data: formData,

contentType: false,

processData: false,

success: function(args) {

本部分如何写?

}

})

})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Django自带的`FileField`来接收上传的excel文件,并保在本地。具体步骤如下: 1. 在Django的Model中定义一个包含`FileField`的Model,用于保上传的excel文件。 ```python from django.db import models class Excel(models.Model): file = models.FileField(upload_to='excel/') ``` `upload_to`参数指定文件上传后保的目录,这里设置为`excel/`目录。 2. 在前端页面中添加一个文件上传的表单,以便用户上传excel文件。 ```html <form action="{% url 'upload_excel' %}" method="post" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="file"> <button type="submit">上传</button> </form> ``` 3. 在Django的视图函数中处理上传的excel文件,将其保在本地。 ```python import os from django.conf import settings from django.shortcuts import render from django.http import HttpResponse from .models import Excel def upload_excel(request): if request.method == 'POST': file = request.FILES.get('file') if file: filename = file.name path = os.path.join(settings.MEDIA_ROOT, 'excel', filename) with open(path, 'wb') as f: for chunk in file.chunks(): f.write(chunk) Excel.objects.create(file=os.path.join('excel', filename)) return HttpResponse('上传成功') return render(request, 'upload.html') ``` 在视图函数中,首先从`request.FILES`中获取上传的excel文件,然后将文件保在指定目录下,并创建一个Excel对象,将文件路径保到数据库中。 4. 最后,需要在`settings.py`中配置上传文件的储路径。 ```python MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') ``` 以上就是Django接收前端上传的excel文件,并保在本地的完整流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值