我想将一些文件从表单上传到云服务器而不重定向到那里。所以我用 php/ajax 找到了这个教程,但是那里使用了 django 中不存在的函数 - move_uploaded_file
。我怎样才能用 django 达到同样的效果?目前我正在使用 django-filetransfers 的一部分,但是在提交我的表单之后,整个部分if request.method == POST
都被省略了:
def upload_handler(request):
if request.method == 'POST':
form = ArtifactSubmissionForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
upload_url, upload_data = prepare_upload(request, "uploadlink")
form = ArtifactSubmissionForm()
myfileid = create_myfileid()
return direct_to_template(request, 'rte/artifact_inline.html',
{'upload_url': upload_url,
'form': form,
'upload_data': upload_data,
'myfileid': myfileid,
'artifact': artifact,
'submissions': submissions})
和html:
{% load filetransfers %}
{% block artifact %}
<h1>Submit</h1>
<form action="{{ upload_url }}" method="POST" enctype="multipart/form-data">
{% render_upload_data upload_data %}
<table>{{ form }}</table>
<p>
<input type="hidden" maxlength="64" name="myfileid" value="{{ myfileid }}" >
</p>
<p>
<input type="submit" value="Submit" />
</p>
</form>
{% endblock %}
编辑:
我只需要将文件发送到服务器进行进一步处理,然后从服务器响应中读取它们的 url。不需要将它们用作 File 对象。