如何将文件从AJAX jQuery上传系统上传到mysql数据库

时间:2015-02-18 13:18:44

标签: php jquery ajax

我正在尝试to get this而不是以一种很好的方式上传文件并将它们放在服务器上,而是转向一些将(希望)将它们放入MySQL数据库的php。我可以把它发布得很好,但不是返回任何有用的东西 - 或者成功 - 我得到:

Error SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

我不知道为什么。 Firebug告诉我它与php的谈话就好了。我不确定如何提取在php中以“files []”名称发布的文件,以单独识别和处理它们。我没有找到任何清楚的理解提取已发布数组的方法(我认为这是什么?)。通过不处理end方法会导致JSON.parse错误吗?或者之前还有其他事情发生了吗?

AJAX新手,现在很沮丧。帮助赞赏。

Originating form looks like this

Which pastes to this php(目前还不是很多)

This is the main application script JS file

1 个答案:

答案 0 :(得分:0)

让jQueryFileUploader做你想做的事情的方法是为在服务器上完成所有工作的类创建子类。

如果您查看安装FileUploader的服务器上的文件结构,它看起来像这样

enter image description here

默认运行的是php文件夹中的index.php,它实例化了UploadHandler类

?php
   error_reporting(E_ALL | E_STRICT);
   require('UploadHandler.php');
   $upload_handler = new UploadHandler();

该类中的代码执行将文件放入磁盘等所有实际工作......

现在要让它做你想要的而不是默认的过程,你需要编写自己的功能,而不是默认功能或默认功能。

所以你需要做的是对默认类进行子类化,并覆盖真实类中你想要改变的工作中的哪个方法。

要更改上传文件的过程,您可以将此方法添加到MyUploadHandler类

error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');

class MyUploadHandler extends UploadHandler
{
    /*
     * Maintain our database:
     * For each uploaded file, add an entry to the tbl_xxx
     */
    protected function handle_file_upload($uploaded_file, $name, $size, 
                                          $type, $error, $index = null, 
                                          $content_range = null)
    {
        // this does what woudl have automatically been done 
        // before we subclasses anything
        $file = parent::handle_file_upload($uploaded_file, $name, $size, 
                                           $type, $error, $index, 
                                           $content_range);

        /* Now we add some extra processing 
           if the file uploaded with no problems
         */
        if ( empty($file->error) ) {

            $sql = "INSERT INTO tbl_xxx ( a,b, imgpath)
                    VALUES('x', 'y', '$file->name' )";

            $db->query($sql);

        }
        return $file;
    }
} // end of class

$upload_handler = new MyUploadHandler($site_params);