2013-06-19 1 views
2

Я надеюсь кто-то имеет некоторый опыт работы с blueimp FileUpload JQuery плагиным по адресу: https://github.com/blueimp/jQuery-File-Uploadдобавление имени загруженного файла в базу данных в blueimp FileUpload JQuery плагин

Как добавить имя загруженного файла в базу данных?

+0

Вы используете PHP на стороне сервера? –

ответ

3

В массиве параметров (ищите $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 должна храниться как средняя или длинная капля.

Вы также можете прокомментировать файловую загрузку в каталог, чтобы вы не получали ошибок, если не загружаете изображения в каталог. Это находится в 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); 
    } 
    */ 
Смежные вопросы