codeigniter + uploadify сохранить имя файла в mysql

Codeigniter 2 и uploadify 2 работают, но я хочу сохранить имя файла в mysql, я сделал 2 метода

первый метод с использованием ajax

'onComplete'  : function(event, ID, fileObj, response, data) {
   $.ajax({
      type: "POST",
      url: "<?php echo site_url('upload/file_upload'); ?>" ,
      data: {filename: fileObj.name,admin_id: $('#admin_id').val(),client_id: $('#client_id').val(),studio_id: $('#studio_id').val()},
      success: function(data){
            $('#status-message').text(data.filesUploaded + ' files uploaded, ' + data.errors + ' errors.');
      }
   });
  } 

 //CI Controller and Models

  public function file_upload()
    {

          $data = array(
            'admin_id' => '123',//$this->session->userdata('user_id'),
            'filename' =>  $this->input->post('file_name'),
            'studio_id' =>  $this->input->post('studio_id'),
            'client_id' => $this->input->post('client_id')
        );

        $this->file_upload_model->add($data);  

    }

Model 

class File_upload_model{

function add($data){

    $this->db->insert('upload_images',$data);

}
}

Второй метод if (!empty($_FILES)) {

$path = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

 //$client_id = $_GET['client_id'];

 $file_temp = $_FILES['Filedata']['tmp_name'];

 $file_name = prep_filename($_FILES['Filedata']['name']);

 $file_ext = get_extension($_FILES['Filedata']['name']);

 $real_name = $file_name;

 $newf_name = set_filename($path, $file_name, $file_ext);

 $file_size = round($_FILES['Filedata']['size']/1024, 2);

 $file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES['Filedata']['type']);

 $file_type = strtolower($file_type);

 $targetFile =  str_replace('//','/',$path) . $newf_name;

 move_uploaded_file($file_temp,$targetFile);



 $filearray = array();

 $filearray['file_name'] = $newf_name;

 $filearray['real_name'] = $real_name;

 $filearray['file_ext'] = $file_ext;

 $filearray['file_size'] = $file_size;

 $filearray['file_path'] = $targetFile;

 $filearray['file_temp'] = $file_temp;

 //$filearray['client_id'] = $client_id;



 $json_array = json_encode($filearray);

 echo $json_array;
 $dbhost = "localhost";
$dbname = "photoproof";
$dbuser = "root";
$dbpass = "password";           
mysql_connect ( $dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

mysql_query("INSERT INTO uploaded_images (uploaded_image) VALUES('$file->name') "); 

}else{

echo "1";   

}

И по-прежнему ничего не происходит на 2 методах, которые я пытаюсь... надеюсь, пожалуйста, дайте какую-нибудь идею, чтобы решить эту проблему... заранее спасибо...


person Dreathlord    schedule 05.10.2011    source источник


Ответы (2)


Пробовали ли вы использовать встроенный класс загрузки файлов CodeIgniter?

person minboost    schedule 05.10.2011
comment
да, но класс загрузки файлов предназначен только для загрузки 1 файла, мне нужно несколько загрузок..... потому что клиент будет загружать изображения 2000+, поэтому я использую uploadify ive... - person Dreathlord; 06.10.2011
comment
Даже при использовании uploadify каждое изображение загружается по одному. - person minboost; 06.10.2011

я решил проблему, добавив запрос внутри sa js/uplodify.php

if (!empty($_FILES)) {
$path = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
 $admin_id = $_POST['admin_id'];
$studio_id = $_POST['studio_id'];
$client_id = $_POST['client_id'];
$file_temp = $_FILES['Filedata']['tmp_name'];
$file_name = prep_filename($_FILES['Filedata']['name']);
$file_ext = get_extension($_FILES['Filedata']['name']);
$real_name = $file_name;
$newf_name = set_filename($path, $file_name, $file_ext);
$file_size = round($_FILES['Filedata']['size']/1024, 2);
$file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES['Filedata']['type']);
$file_type = strtolower($file_type);
$targetFile =  str_replace('//','/',$path) . $newf_name;

 mysql_connect("localhost", "db_username", "db_password");
mysql_select_db("table_name");
 mysql_query("INSERT INTO uploaded_images     (admin_id,file_name,studio_id,client_id)VALUES('.$admin_id.','.$newf_name.','.$studio_id.','.$client_id.')"); 


move_uploaded_file($file_temp,$targetFile);

$filearray = array();
$filearray['file_name'] = $newf_name;
$filearray['real_name'] = $real_name;
$filearray['file_ext'] = $file_ext;
$filearray['file_size'] = $file_size;
$filearray['file_path'] = $targetFile;
$filearray['file_temp'] = $file_temp;
//$filearray['client_id'] = $client_id;

$json_array = json_encode($filearray);
echo $json_array;



}else{
echo "1";   
} 
person Dreathlord    schedule 07.10.2011