在过去的一个月里,我一直在尝试创建一个页面来异步地向我们的服务器提交pdf。我是一名经验丰富的程序员,但从未在web开发或php或javascript工作过。
javascript的提交函数如下:
function sendFile(event)
{
$("#submitForm").hide();
var formData = new FormData();
var file=$("#journal")[0].files[0];
formData.append("document", file);
$.ajax("converter.php", { data:formData, processData:false, dataType:"text", method:"post", success:function(data, textStatus, jqXHR){
if(data.length == 8)
{
$("#key_input").val(data);
$("#key_submission").submit();
}
else
{
$("#response").html(data);
}
} });
它提交给服务器,但一旦php脚本到达这一行
if(isset($_POST['document']))
程序崩溃,我得到一个内部服务器错误。是什么导致了坠机?
$.ajax()
应该这样做:
$.ajax({ //<------"{" an object should be passed here so you are missing a "{"
url:"converter.php", //<-----"url:" was missing.
data:formData,
contentType:false, //<-----this is also needed for file upload
processData:false,
dataType:"text",
type:"post", //<------should be type not method
success:function(data, textStatus, jqXHR){
if(data.length == 8){
$("#key_input").val(data);
$("#key_submission").submit();
}else{
$("#response").html(data);
}
}
});
如果你试图上传一个文件,那么contentType:false
需要与processData:false
。
FormData
您可以在这里阅读更多内容