Я разрабатываю приложение, используя CodeIgniter 2.2.0. В моем приложении пользователи смогут загружать файлы PDF на сервер.
Я использую uploadifive.js
на интерфейсе, у меня также есть контроллер, который в первую очередь создает структуру каталогов, в которой файл будет храниться.
Все работает отлично на моем локальном хосте (W7 и Apache), каталог создан, имя файла зашифровано и так далее. Проблема возникает при попытке загрузить файл на моем рабочем сервере, Ubuntu 12. Создаются каталоги, но файл не загружается.
Я прочитал более двадцати сообщений, но не нашел решения.
Здесь есть несколько строк кода загрузчика, я не эксперт в Ubuntu или Linux, поэтому проблема должна быть неправильной. Кто знает?
if(!empty($_POST['type_folder'])){ $upload_file = FCPATH . '/application/files/'.$_POST['number_identification'].'/'.$_POST['type_folder'].'/COD_'.$_POST['id_agreement'].'/'.sha1($_POST['type_folder']."_".$_POST['id_agreement']."_".$_POST['number_identification']).'.pdf'; if (file_exists($upload_file)) { @unlink($upload_file); } $file_name = sha1($_POST['type_folder']."_".$_POST['id_agreement']."_".$_POST['number_identification']); $final_upload_folder = $upload_sub_sub_folder_by_service; } if ($status != "error") { $config['upload_path'] = $final_upload_folder; $config['allowed_types'] = 'pdf'; $config['max_size'] = 1024 * 1024 * 4; $config['file_name'] = $file_name; $this->load->library('upload', $config); if (!$this->upload->do_upload($file_element_name)) { $status = 'error'; $msg = $this->upload->display_errors('', ''); } else { //echo "<pre>"; Print_r($this->upload->data()); echo "</pre>"; $data = $this->upload->data(); ... }
вif(!empty($_POST['type_folder'])){ $upload_file = FCPATH . '/application/files/'.$_POST['number_identification'].'/'.$_POST['type_folder'].'/COD_'.$_POST['id_agreement'].'/'.sha1($_POST['type_folder']."_".$_POST['id_agreement']."_".$_POST['number_identification']).'.pdf'; if (file_exists($upload_file)) { @unlink($upload_file); } $file_name = sha1($_POST['type_folder']."_".$_POST['id_agreement']."_".$_POST['number_identification']); $final_upload_folder = $upload_sub_sub_folder_by_service; } if ($status != "error") { $config['upload_path'] = $final_upload_folder; $config['allowed_types'] = 'pdf'; $config['max_size'] = 1024 * 1024 * 4; $config['file_name'] = $file_name; $this->load->library('upload', $config); if (!$this->upload->do_upload($file_element_name)) { $status = 'error'; $msg = $this->upload->display_errors('', ''); } else { //echo "<pre>"; Print_r($this->upload->data()); echo "</pre>"; $data = $this->upload->data(); ... }
Проверьте разрешения вашей папки. Если вы создаете свои папки программно с помощью php, вы можете установить свои права сразу после http://php.net/manual/en/function.chmod.php .
ех.
chmod("/path/to/somedir", 0755);