我不是前端开发人员,我花了很多时间尝试这样做。希望你们能帮助我。 我有一个表单,它将文件发送到服务器中的API,如下所示:
<form id="uploadForm" action="url/upload/" method="post" enctype="multipart/form-data" accept-charset="ISO-8859-1">
<div class="inputFileCustom">
<input type="file" size="45" name="file" id="uploadFiles" accept="application/pdf"/>
<label for="uploadFiles">
<div class="ic-bt ic-bt-details ic-bt-text btn btn-border">
Choose a file
</div>
</label>
</div>
<input type="submit" value="Upload PDF" class="btn btn-primary" />
</form>
url/upload
返回一个JSON,如:
{ "status": "ok"/"fail" }
我需要两件事:
url/upload
; loadFiles()
函数(已经有效)。我正在使用javascript for loadFiles()
函数,但它非常简单。
答案 0 :(得分:3)
您可以使用jquery表单处理程序作为
<script>
// Attach a submit handler to the form
// Attach a submit handler to the form
$("#uploadForm").submit(function(event) {
var formData = new FormData();
formData.append("uploadFiles", $('[name="file"]')[0].files[0]);
event.stopPropagation();
event.preventDefault();
$.ajax({
url: $(this).attr("action"),
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function(data) {
alert(data);
loadFiles()
}
});
return false;
});
</script>
答案 1 :(得分:2)
您似乎需要使用Javascript发布请求。如果您使用的是JQuery,则可以使用$.ajax
例如:
$.ajax({
url: '',
type: '',
data: {},
success: function(data){
console.log(data);
}
})
使用此功能意味着它不会将页面重定向到表单之外,因此您可以将成功或错误消息显示在同一屏幕上。
有关详细信息,请参阅http://api.jquery.com/jquery.ajax/
答案 2 :(得分:0)
1. Prevent submit to redirect to url/upload
<form id="uploadForm" action="url/upload/" method="post" enctype="multipart/form-data" accept-charset="ISO-8859-1" onsubmit ='return checkRegistration()'>
<div class="inputFileCustom">
<input type="file" size="45" name="file" id="uploadFiles" accept="application/pdf"/>
<label for="uploadFiles">
<div class="ic-bt ic-bt-details ic-bt-text btn btn-border">
Choose a file
</div>
</label>
</div>
<input type="submit" value="Upload PDF" class="btn btn-primary" />
</form>
<script>
function checkRegistration(){
if(!form_valid){
return false;
}
return true;
}
</script>
答案 3 :(得分:0)
检查这个小提琴:https://jsfiddle.net/41mnz0z1/
$('#uploadForm').submit(function(e) {
e.preventDefault();
$.ajax({
url: '/echo/json/',
data: $(this).serialize(),
type: 'POST',
success: function(data) {
alert(data);
}
});
});
提交表单后, e.preventDefault()
会阻止浏览器的标准操作(将您重定向到另一个页面)。 data: $(this).serialize()
将表单数据发送到您想要的url: 'fileUpload.php'
。
它与文件的作用相同。