作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经尝试上传一个简单的文本文件几个小时了,但我似乎仍然无法让它工作。
我不断收到无效表单,称我缺少“file_source”。
为什么“file_source”没有被发布?
我还让它实际发送“file_source”,但它仍然说它丢失了。应该为 Django FileFiled 提供什么类型的元素?
Django 表单:
class FileUploadForm(forms.Form):
file_source = forms.FileField()
Django 模板(呈现表单):
<form action="/upload/" method="post" id="file-upload-form" enctype="multipart/form-data"> {% csrf_token %}
{{ form }}
<button type="submit" class="btn btn-primary" id='upload-btn'>Upload</button>
</form>
JQuery/Ajax 上传:
function uploadFile() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action')
});
return false;
}
$(function() {
$('#file-upload-form').submit(uploadFile);
});
Django 查看哪些收到 POST:
def upload_view(request):
if request.is_ajax():
form = FileUploadForm(request.POST)
if form.is_valid():
print 'valid form'
else:
print 'invalid form'
print form.errors
return HttpResponseRedirect('/ingest/')
最佳答案
这是我为使其正常工作而进行的更改。
我使用FormData来打包表单中的数据
注意 Django View 中表单的参数。我之前没有指定"file",这就是导致“需要文件字段”错误的原因。
Javascript:
function upload(event) {
event.preventDefault();
var data = new FormData($('form').get(0));
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: data,
cache: false,
processData: false,
contentType: false,
success: function(data) {
alert('success');
}
});
return false;
}
$(function() {
$('form').submit(upload);
});
Django View :
def upload_view(request):
if request.method == 'POST':
form = FileUploadForm(data=request.POST, files=request.FILES)
if form.is_valid():
print 'valid form'
else:
print 'invalid form'
print form.errors
return HttpResponseRedirect('/ingest/')
关于jquery - Django JQuery Ajax 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20822823/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!