Я использую uplodify с CodeIgniter.
У меня есть 2 настройки базы данных. Один из локального хоста, другой из http://phpmyadmin.co.
Если я выбираю базу данных как phpmyadmin.co, загрузка сервера работает нормально. Но если я выберу базу данных localhost, то uploadify вернет ошибку http 500 или ошибку ввода-вывода.
Но файл успешно загружен в папку, но всегда возвращает функцию onUploadError
Используя следующий код для загрузки
$(function() {
$('#file_upload').uploadify({
'formData' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>',
'wallmount_id' : $('#id').val(),
'sessionID' : '<?php echo session_id(); ?>',
'user' : '1'
},
'swf' : './uploadify.swf',
'uploader' : 'home/save_video',
'fileTypeDesc' : 'Video Files',
'fileTypeExts' : '*.mp4; *.avi; *.webm; *.3gp; *.mov; *.mpeg; *.3gp; *.wmv',
'auto' : false,
'buttonText': 'Select Video File',
'onUploadStart' : function(file) {
$("#file_upload").uploadify("settings", "formData", {'id' : $('#id').val()});
},
'onUploadSuccess' : function(file,data,response) {
alert(data);
},
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
}
});});
И это функция контроллера для сохранения загруженного файла
public function save_video() {
$verifyToken = md5('unique_salt' . $_POST['timestamp']);
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$config = set_upload_options('uploads/videos');
$this->load->library('upload');$new_name = $_POST['id']."_".time()."_".$_FILES["Filedata"]['name'];
$config['file_name'] = $new_name;
$this->upload->initialize($config);//$tempFile = $_FILES['Filedata']['tmp_name'];
$targetFile = 'uploads/videos/'.$new_name;
//$this->upload->do_upload('Filedata');
if (!$this->upload->do_upload("Filedata")){
$this->session->set_flashdata('message', array('message' => $this->upload->display_errors(), 'title' => 'Error !', 'class' => 'danger'));
}
else {
$upload_data = $this->upload->data();
$data['video_path'] = 'uploads/videos/'.$file_name;
$result = $this->home->save_videos($data);
}}
}
и мой код модели
function save_videos($data) {
$result = $this->db->insert('videos', $data);
if($result) {
return $this->db->insert_id();
}
else {
return false;
}
}
Задача ещё не решена.
Других решений пока нет …