【发布时间】:2018-05-08 21:44:51
【问题描述】:
我有一个保存在变量“报告”中的 PDF 文件。
我正在使用 Django,并希望使用 POST 将其传递给我的 views.py 文件中的函数 --
@xframe_options_exempt
@csrf_exempt
def process_report(request):
if request.method == 'POST'
report_file = request.FILES['docfile']
....
return response
如何使用此文件发送 ajax POST 请求?文件类型为 PDF。
我以前使用 HTML 表单来执行此操作,但我想使用 javascript 设置表单上传样式。我尝试使用 javascript 设置按钮的样式(根据上传的文件类型更改颜色和文本),但该文件不再能够通过 POST 请求传递。现在我只是将文件保存在一个 javascript 变量中,并试图通过 POST 传递它而不使用表单。我知道不可能用文件预填充表单。
我的旧代码:
<form id="boring" action="{% url "process_report" %}" method="post"
enctype="multipart/form-data">
{% csrf_token %}
{{ form.non_field_errors }}
{{ form.docfile.label_tag }} {{ form.docfile.help_text }
{{ form.docfile.errors }}
{{ form.docfile }}
</form>
我一直在尝试用 ajax 做什么
var formdata = new FormData(report);
$.ajax({
url: 'process_report',
type: 'POST',
processData: false,
contentType: false,
dataType : 'application/pdf',
data: {
'content': 'formdata',
'csrfmiddlewaretoken': '{{ csrf_token }}',
}
【问题讨论】:
标签: javascript ajax django file upload