Jquery提交函数无法将上传的文档发布到php脚本中

时间:2014-02-05 12:24:54

标签: php jquery

一直试图使用jquery的提交功能将上传的文档与其他文本字段一起发布到php脚本,但到目前为止还没有成功。文本字段已成功发布。我不知道问题是什么。提供协助。

Jquery提交代码

    submitHandler: function(form) {

            $.post('bin/insert.php', $("#form").serialize(), 
            function(data) {
              if(data.length > 0 )
              {
                  $('.success_box').fadeIn(800);
                 $('.success_box').html(data);
              }

            });
            }

php脚本

            if(isset($_POST['save']))
   {
            $upload_dir = "./docs"; 
    $upload_path = $upload_dir."/";
    $userfile_name = $_FILES['image']['name'];
    $userfile_tmp = $_FILES['image']['tmp_name'];
    $userfile_size = $_FILES['image']['size'];
    $filename = basename($_FILES['image']['name']);
    $file_ext = substr($filename, strrpos($filename, '.') + 1);
    $large_image_name  = $filename;
            if($userfile_name==NULL){
    echo "<img src='./warning.png' align='center'>You have not selected a      document to upload";
    exit();
}
}

我在发布表单时收到以上错误消息。

2 个答案:

答案 0 :(得分:1)

AJAX不能用于将文件上传到服务器。

有一些插件可能会有所帮助,包括:

http://www.webtoolkit.info/ajax-file-upload.html

注意到在评论中提供的SO链接上发布此链接和其他人 - 该页面为您提供了良好的信息来源。

答案 1 :(得分:0)

是的,您可以上传起诉ajax脚本的文件。使用以下代码

$(document).ready(function(){
        $('form#id').submit(function(event){            
            var formData = new FormData($(this)[0]);
            $.ajax({
                type : "POST",
                url : "bin/insert.php",
                data : formData,
                async :false,
                dataType : 'json',
                success: function(data,status)  {           
                               alert('saved');
                        },
                cache: false,
                contentType: false,
                processData: false
            });             
            event.preventDefault();
        });
    });

在php页面试试 的print_r($ _ POST); 的print_r($ _ FILES);

处理这些并放入db并将文件移动到您的文件位置。