Перейти к содержимому


Доп. действие во всплывающем окне с загрузкой файлов


Сообщений в теме: 27

#21 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2014 - 15:31

"Array" в любом случае берется из $named, т.к. поле заполняется только им. Проверяйте содержимое переменных через echo и print_r.

#22 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 30 Июль 2014 - 15:40

нашел ошибку в коде - теперь выводит в поле 2 файла, но ссылка на них одна

#23 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2014 - 15:50

В каком смысле одна? Физически одна, или все же две, но на один и тот же файл?

#24 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 30 Июль 2014 - 15:54

ссылка на два файла - как будто это один текст

#25 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2014 - 16:04

Тогда замените "\n" на "\r\n".

#26 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 30 Июль 2014 - 16:08

Огромное спасибо за помощь - теперь все работает!!!

#27 nevmerzhitsky

    Участник

  • Пользователи
  • PipPip
  • 24 сообщений
  • Пол:Мужчина

Отправлено 11 Ноябрь 2014 - 21:51

Итоговый рабочий код доп.действия может выглядеть следующим образом:
$errors = array();

if (empty($_FILES['myfiles']['name']['cc_scan'][0])) {
  $errors[] = 'Добавьте файлы со сканами нового кредитного договора!';
} else {
  foreach ($_FILES['myfiles']['error']['cc_scan'] as $i => $fileError) {
    if ($fileError != 0) {
      $errors[] = sprintf('Техническая ошибка при загрузке файла №%d: %d. Обратитесь к администратору.', $i + 1, $fileError);
    }
  }
}

if (! empty($errors)) {
  throw new Exception($errors);
}

$fileNames = array();
foreach ($_FILES['myfiles']['name']['cc_scan'] as $i => $fileName) {
  $fileName = trim($fileName);
  $fileNames[] = $fileName;
  $data = file_get_contents($_FILES['myfiles']['tmp_name']['cc_scan'][$i]);
  save_data_file(12961, $line['ID'], $fileName, $data);
}

$data = array(
  'Скан нового КД' => trim($line['Скан нового КД'] ."\r\n". implode("\r\n", $fileNames)),
);
update_query($data, 'Кредитные договоры', "`ID`={$line['ID']}");

12961 это идентификатор поля "Скан нового КД".

HTML-код с формой загрузки файла:
<form method="post" enctype="multipart/form-data">
  <input type="hidden" name="id" value="<?php echo $_REQUEST['id']; ?>">
  <input type="hidden" name="line_id" value="<?php echo $line['ID']; ?>">
  <input type="hidden" name="csrf" value="<?php echo $GLOBALS['csrf']; ?>">
  <p><label>
	<span>Скан нового КД:</span>
	<input type="file" name="myfiles[cc_scan][]" size="20" multiple="multiple">
  </label></p>
  <p><input type="submit" value="Сохранить"></p>
</form>

Сообщение отредактировал nevmerzhitsky: 11 Ноябрь 2014 - 21:54


#28 serg63rus

    Активный участник

  • Пользователи
  • PipPipPip
  • 52 сообщений

Отправлено 13 Май 2015 - 12:41

Просмотр сообщенияaleks.goodcolor (30 Июль 2014 - 15:40) писал:

нашел ошибку в коде - теперь выводит в поле 2 файла, но ссылка на них одна

Не подскажите в чем ошибка была? а то пытаюсь на основе вашего кода сделать - никак не пойму в чем дело..





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных