我想將一些文件從表單上傳到雲服務器而不用重定向到那裏。所以我發現this教程使用php/ajax,但沒有在django中使用的函數在那裏使用 - move_uploaded_file
。我怎樣才能達到與Django相同?目前我使用Django的filetransfers的一部分,但省略提交我的形式if request.method == POST
後的整個部分後:move_uploaded_file在django中的等效函數
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對象。
乍看之下,PHP教程只是移動接收它們的服務器上的文件。這可能對你正在嘗試做的事沒有用。 – 2010-11-13 20:28:37