用jQuery / ajax / php提交文件



我的ajax文件有问题以进行提交。似乎没有向接收PHP文件提交的任何东西(变量和文件)。

这是我的形式:

<form id="ProtocolForm" enctype="multipart/form-data" method="post">
   <input name="ProtocolName" type="hidden" value="sdfsdf">
   <input name="ProtocolType" type="hidden" value="Image">        
   <input name="name_major" id="name_major" type="text">
   <input name="name_minor" id="name_minor" type="text">
   <input name="creator" id="creator" type="text">
   <input name="File" class="File" id="File" type="file">
   <input id="Submit" type="submit" value="Save Protocol">
</form>

这是我的JS代码:

 $(document).on( "submit", "#ProtocolForm", function( event ) {
        event.preventDefault();
        var form = $('form')[0];  
        var formData = new FormData(form)
          $.ajax({
            url: "_save_protocol.php",
            type: "POST",
            data:  formData,
            contentType: false,
            cache: false,
            processData:false,
            beforeSend : function()
            {
                alert('before send:' + $('form').serialize());
            },
            success: function(data)
            {
                if(data=='invalid')
                {
                    alert('Invalid file');
                }
                else
                {                         
                    alert('Response:' + data);                     
                }
            },
            error: function(e) 
            {
                alert('Error '+ e);
            }          
            });

    });

提交表单时,警报我可以看到beforesend函数中序列化的所有变量。但是,当我尝试访问PHP文件中的变量时,它们都是空白的。$ _ post是空白的,$ _files。我想念什么?任何帮助将不胜感激。谢谢!

解决了问题;问题不是Ajax,而是事物的服务器端。php.ini max_postrongize未适当设置,因此服务器未正确处理帖子请求。它是固定的,现在正在工作。

阅读有关本网站上主题的其他一些问题使我认为这是一个相当普遍的问题 - 尤其是对于那些像我这样的共享托管服务的问题。希望这对他人有所帮助。

最新更新