在blueimp fileupload jquery插件中将上传的文件名添加到数据库中



我希望有人有一些经验与blueimp文件上传jquery插件:https://github.com/blueimp/jQuery-File-Upload

如何将上传的文件名添加到数据库中

在options数组中(查找$this->options = array( )插入

'database' => 'database_name',  
'host' => 'localhost',  
'username' => 'user',  
'password' => 'password',  

之后
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
        $index = null, $content_range = null) {
    $file = new stdClass();
    $file->name = $this->get_file_name($name, $type, $index, $content_range);
    $file->size = $this->fix_integer_overflow(intval($size));
    $file->type = $type;</code></pre>

插入代码

    //Start added coded
    // prepare the image for insertion
    $data = addslashes (file_get_contents($uploaded_file));
    // get the image info..
    $size = getimagesize($uploaded_file);     
    $file->upload_to_db = $this->add_img($data, $size, $name);
    //end added code

并在handle_file_upload函数之后插入以下代码,以实际上将图像上传到数据库。

function query($query) {  
    $database = $this->options['database'];  
    $host = $this->options['host'];  
    $username = $this->options['username'];  
    $password = $this->options['password'];  
    $link = mysql_connect($host,$username,$password);  
    if (!$link) {  
        die(mysql_error());  
    }
    $db_selected = mysql_select_db($database);  
    if (!$db_selected) {  
        die(mysql_error());  
    }  
    $result = mysql_query($query);  
    mysql_close($link);  
    return $result;  
}  
function add_img($data,$size,$name)  
{  
    $add_to_db = $this->query("INSERT INTO your_database_name
            (image_type ,image, image_size, file_name)
            VALUES
            ('{$size['mime']}', '{$data}', '{$size[3]}', '{$name}')") or die(mysql_error());  
    return $add_to_db;  
}

如果您不想将add_img($data,$size,$name)更改为add_img($size,$name)并且不传递$data变量,则将在数据库中存储实际图像。$data变量应该存储为一个中长blob。

你也可以注释掉fileupload到目录的东西,这样你就不会得到错误,如果你不知道图片上传到一个目录。这是在protected function handle_file_upload

//comment out file upload stuff since storing in database
    /*
    if ($this->validate($uploaded_file, $file, $error, $index)) {
        $this->handle_form_data($file, $index);
        $upload_dir = $this->get_upload_path();
        if (!is_dir($upload_dir)) {
            mkdir($upload_dir, $this->options['mkdir_mode'], true);
        }
        $file_path = $this->get_upload_path($file->name);
        $append_file = $content_range && is_file($file_path) &&
            $file->size > $this->get_file_size($file_path);
        if ($uploaded_file && is_uploaded_file($uploaded_file)) {
            // multipart/formdata uploads (POST method uploads)
            if ($append_file) {
                file_put_contents(
                    $file_path,
                    fopen($uploaded_file, 'r'),
                    FILE_APPEND
                );
            } else {
                move_uploaded_file($uploaded_file, $file_path);
            }
        } else {
            // Non-multipart uploads (PUT method support)
            file_put_contents(
                $file_path,
                fopen('php://input', 'r'),
                $append_file ? FILE_APPEND : 0
            );
        }
        $file_size = $this->get_file_size($file_path, $append_file);
        if ($file_size === $file->size) {
            $file->url = $this->get_download_url($file->name);
            list($img_width, $img_height) = @getimagesize($file_path);
            if (is_int($img_width) &&
                    preg_match($this->options['inline_file_types'], $file->name)) {
                $this->handle_image_file($file_path, $file);
            }
        } else {
            $file->size = $file_size;
            if (!$content_range && $this->options['discard_aborted_uploads']) {
                unlink($file_path);
                $file->error = 'abort';
            }
        }
        $this->set_additional_file_properties($file);
    }
    */

最新更新