2

I am hoping someone has some experience with the blueimp fileupload jquery plugin at : https://github.com/blueimp/jQuery-File-Upload

How to add the uploaded file name to database ?

1
  • do you use PHP on the server side? Commented Jun 20, 2013 at 8:05

1 Answer 1

3

In the options array (look for $this->options = array( ) and insert

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

Then after

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>

Insert this code

    //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

and after the function handle_file_upload insert the following code to actually upload the image to the database.

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;  
}

This will store the actual image in the database if you don't want that change the add_img($data,$size,$name) to add_img($size,$name) and just don't pass the $data variable. The $data variable should be stored as a medium or long blob.

You can also comment out the fileupload to directory stuff so you don't get errors if you don't what the images uploaded to a directory. This is in the 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);
    }
    */
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.