Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2013, 11:05   #1
serrgggeee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 65
По умолчанию загрузка файлов на сервер

Здравствуйте я пытаюсь загрузить файлы на сервер при помощи класса codeigniter File Uploading но ничего не выходит, хотя точно такой код я использую и все проходит успешно и на сервер записываются данные и в базу данных вот что у меня во вьюшке
PHP код:
<form method="post" action="/admin/edit_slider/<?=$segment3 ?>"  enctype="multipart/form-data">
    <? foreach($slider as $value):?>

        <p class="navigkkk"><label>Изображение:</label></p>

            <img src="/images/slider/img_big/<?= $value['img'?>">
    <? endforeach;?>
        <div align="center"><input type="file" name="userfile" size="20"/></div>
        <input style="margin-top: 12px" type="submit"  value="Сохранить"/>

    </form>
serrgggeee вне форума Ответить с цитированием
Старый 21.12.2013, 11:07   #2
serrgggeee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 65
По умолчанию

это контроллер
[PHP] public function edit_slider()
{
if ($this->session->userdata('logged_in')) {

if ($this->input->post())
{
$this->load->library("image_lib");
$config['upload_path'] = './images/slider/img_big/'; // задаем путь к директории upload
$config['allowed_types'] = 'gif|jpg|png|GIF|JPG|PNG|gif|GIG|jp eg|JPEG'; // указываем допустимые расширения
$config['max_size'] = '10000'; // max размер файла в Kb
$config['max_width'] = '10240'; // max размер по вертикали
$config['max_height'] = '7680'; // max размер по горизонтали
$this->load->library('upload', $config);
if (!$this->upload->do_upload()) { // сообщение об ошибке загрузки
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
} else { // вывод параметров переданного файла

$filedata = $this->upload->data();
$config['source_image'] = './images/slider/img_big/' . $filedata['file_name'] . '';
$width = $filedata['image_width'];
$height = $filedata['image_height'];
if ($width >= $height) {
$per = $height / 260;
$per2 = $width / $per;
$config['width'] = $per2;
$config['height'] = 260; // и задаем размеры
}
if ($width <= $height) {
$per = $width / 340;
$per2 = $height / $per;
$config['width'] = 340; // и задаем размеры
$config['height'] = $per2;
}
$config['new_image'] = './images/slider/img_all/' . $filedata['file_name'];
$this->image_lib->initialize($config);

$this->image_lib->resize(); // и вызываем функцию
array('upload_data' => $this->upload->data());
$this->image_lib->clear();

if ($config['width'] <= '340') {
} else {
$config['image_library'] = 'gd2';

$config['maintain_ratio'] = false;
$config['maintain_ration'] = false;

$config['source_image'] = './images/slider/img_all/' . $filedata['file_name'];
$config['width'] = 340;

$config['height'] = 260;
/* $config['x_axis'] = -20;
$config['y_axis'] = -50;*/
$config['new_image'] = './images/slider/img_all/' . $filedata['file_name'];
$this->image_lib->initialize($config);
$this->image_lib->crop();
}

/**/ /* !!!!!!!!!resize !!!!!!!!!!!!!!!resize !!!!!!*/ /**/
$config['source_image'] = './images/slider/img_all_big/' . $filedata['file_name'];

$width = $filedata['image_width'];
$height = $filedata['image_height'];
/**/ /**/ /**/ /**/ /**/ /**/
$width_sa = '200'; /**/ /**/ /**/ /**/ /**/ /**/
/**/ /**/ /* */ /**/ /**/ /**/
$height_sa = '150'; /**/ /**/ /**/ /**/ /**/ /**/

$width = $filedata['image_width'];
$height = $filedata['image_height'];
if ($width >= $height) {

$per = $height / $height_sa;
$per2 = $width / $per;
$config['width'] = $per2;

$config['height'] = $height_sa; // и задаем размеры
}
serrgggeee вне форума Ответить с цитированием
Старый 21.12.2013, 11:08   #3
serrgggeee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 65
По умолчанию

if ($width <= $height) {
$per = $width / $width_sa;
$per2 = $height / $per;

$config['width'] = $width_sa; // и задаем размеры

$config['height'] = $per2;

}

$config['new_image'] = './images/slider/img_all_big/' . $filedata['file_name'];
$this->image_lib->initialize($config);
$this->image_lib->resize(); // и вызываем функцию
array('upload_data' => $this->upload->data());
$this->image_lib->clear();
/**/
if ($config['width'] >= $width_sa) {
$config['image_library'] = 'gd2';
$config['maintain_ratio'] = false;
$config['maintain_ration'] = false;
$config['source_image'] = './images/slider/img_all_big/' . $filedata['file_name'];
$config['width'] = $width_sa;
$config['height'] = $height_sa;
$config['new_image'] = './images/slider/img_all_big/' . $filedata['file_name'];
$this->image_lib->initialize($config);
$this->image_lib->crop();
}
if ($config['height'] >= '150') {
$config['image_library'] = 'gd2';
$config['maintain_ratio'] = false;
$config['maintain_ration'] = false;
$config['source_image'] = './images/slider/img_all_big/' . $filedata['file_name'];
$config['width'] = $width_sa;
$config['height'] = $height_sa;
$config['new_image'] = './images/slider/img_all_big/' . $filedata['file_name'];
$this->image_lib->initialize($config);
$this->image_lib->crop();
}

array('upload_data' => $this->upload->data());
$this->image_lib->clear();
}



$this->modules->edit_slider( $this->input->post());


redirect('/admin/sliderss');
} else
{
$data['city2'] = $this->modules->city2();
$data['city'] = $this->modules->city();
$data['rating'] = $this->modules->rating();
$data['all_menu'] = $this->modules->catalog_all();
$data['items'] = $this->modules->catalog_open_catalog();

$data['city_id_user'] = $this->modules->city_id_user_op();
$data['working'] = $this->modules->working();
$data['slider'] = $data['id_user'] = $this->modules->sliders1();

$this->load->view('admin/modules/user/city_user/main/edit_slider.php', $data);
}
} else {
redirect('/user/login_adm');
}
}[/PHP]
и модель
PHP код:
 function edit_slider()
    {
        
$filedata $this->upload->data();

        
$data['img'] = '' $filedata['file_name'] . '';
        
        
$this->db->insert('slider',$data);
    } 
да вот еще ньанс если я в форме убираю enctype="multipart/form-data" тоесть записываю так enctype="multipart/form" то запись в базу данных заносится но не записывается яцейка img и на сервер тоже фаайл не записывается, не могу понят что происходи. папки на сервере все 777.
serrgggeee вне форума Ответить с цитированием
Старый 21.12.2013, 11:15   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Поиск ошибок и отладка
Andkorol вне форума Ответить с цитированием
Старый 21.12.2013, 11:34   #5
serrgggeee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 65
По умолчанию

если я убираю enctype="multipart/form" то получаю вот что
Array ( )
A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/z/zubexin/tel600615/public_html/application/controllers/admin.php:2241)

Filename: helpers/url_helper.php

Line Number: 542
а если не убираю то загрузка вроде как идет даже покзываются проценты загрузки, но в конце я остаюсь на прежней странице то есть редирект не происходит и результатов print_r($_FILES); я тоже не вижу
serrgggeee вне форума Ответить с цитированием
Старый 22.12.2013, 15:43   #6
serrgggeee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 65
По умолчанию

привет кто здесь я продолжаю тему теперь мне нужно добавить одним кликом несколько файло вот код
PHP код:
 <?php echo form_open_multipart('/admin/edd_slider', array('id' => 'fileupload')); ?>
                    <p>Название: <br/>
                        <input type="hidden" name="name" value=""
                               class="registr_input" title="Название"
                               placeholder="Название"
                               onfocus="if (this.value=='Название') this.value='';"
                               onblur="if (this.value=='') this.value='';" style="width: 60%"/>
                    <span class="fileinput-button">
                <span>Добавить файл</span>
                <input type="file" name="userfile" multiple>
            </span>
                    <input style="margin-top: 12px" type="submit"  id='<?=$cc?>' value="Сохранить">
                    <?php echo form_close(); ?>
да кстати здесь есть скрытое поле как не странно это и есть ответ к первому моему вопросу, тоесть с этим поле все работает
так далее контролер
PHP код:
 if ($this->input->post())
            {
                
$this->load->library("image_lib");
                
$config['upload_path'] = './images/slider/img_big/'// задаем путь к директории upload
                
$config['allowed_types'] = 'gif|jpg|png|GIF|JPG|PNG|gif|GIG|jpeg|JPEG'// указываем допустимые расширения
                
$config['max_size'] = '10000'// max размер файла в Kb
                
$config['max_width'] = '10240'// max размер  по вертикали
                
$config['max_height'] = '7680'// max размер  по горизонтали
                
$this->load->library('upload'$config);
                
$this->upload->do_upload();
                
$upload_data $this->upload->data();
                for(
$i=1$i<=count($upload_data['file_name']); $i++){
                    
$add['img'] = $upload_data['file_name']; // сохраняем имя файла в элемент массива add
                
$this->modules->edd_slider($add); }
                
redirect('/admin/sliderss');

            } 
здесь мне нужно посчитать сколько приходи файов я делаю вот что
PHP код:
 for($i=1$i<=count($upload_data['file_name']); $i++){
                    
$add['img'] = $upload_data['file_name']; // сохраняем имя файла в элемент массива add
                
$this->modules->edd_slider($add); } 
но count насчитывает только один файл незнаю как составить масив что бы были разные $upload_data['file_name'] название менять нельзя в скобки $this->upload->do_upload(); пробовал измененное название ставить но это тоже не вариант масив же меняется короче ребят если кто знает как это реализовать подскажите, да в модели там пусто просо приходит данная и функция вставки в базу данных
serrgggeee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мульти загрузка файлов на сервер. Небесный PHP 1 26.02.2013 12:52
загрузка файлов на сервер voicel JavaScript, Ajax 0 27.01.2013 13:17
Загрузка файлов на сервер Predator199 PHP 3 19.04.2012 18:38
зАГРУЗКА ФАЙЛОВ НА СЕРВЕР <kale> PHP 1 11.07.2011 11:32
загрузка файлов на сервер Dimarik PHP 6 16.12.2010 10:46