Javascript文件提交导致php脚本服务器错误


Javascript file submission causing server error in php script

在过去的一个月里,我一直在尝试创建一个页面来异步地向我们的服务器提交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
您可以在这里阅读更多内容