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


сохранение исходного изображения в другую директорию


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

#1 AChekin

    Участник

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

Отправлено 06 Май 2013 - 17:59

Добрый день.
Стоит такая задача. При добавлении новой строки в таблицу для поля "Изображение" требуется написать вычисление, согласно которому, при загрузке файла (тип поля "Изображения") исходное изображение будет копироваться в определенную папку в директории "files" в нешифрованном виде.

Собственно, задача вроде как технически не кажется сложной:


Цитата

$image_location = $_SERVER['DOCUMENT_ROOT'].'/files/'.$_FILES['add_file[new][3601][]']['name'];


move_uploaded_file($_FILES['add_file[new][3601][]'], $image_location);


Вопрос в том, как подхватить этот самый загружаемый файл? У меня что-то никак не получается...

Помогите, плз.

#2 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 06 Май 2013 - 18:12

Просмотр сообщенияAChekin (06 Май 2013 - 17:59) писал:

Добрый день.
Стоит такая задача. При добавлении новой строки в таблицу для поля "Изображение" требуется написать вычисление, согласно которому, при загрузке файла (тип поля "Изображения") исходное изображение будет копироваться в определенную папку в директории "files" в нешифрованном виде.

Собственно, задача вроде как технически не кажется сложной:



Вопрос в том, как подхватить этот самый загружаемый файл? У меня что-то никак не получается...

Помогите, плз.
А зачем такой велосипед? Создайте вычисление с условием обновления поля c типом изображения. Определить полный путь к загруженному файлу - get_file_path($field_id, $line_id, $fname), $fname - полное имя загруженного файла. И дальше уже делаете что Вам нужно. Примеров на форуме хватает.

Сообщение отредактировал wondertalik: 06 Май 2013 - 18:13


#3 AChekin

    Участник

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

Отправлено 06 Май 2013 - 18:34

То есть мы сначала грузим изображение в КБ, потом вычислением находим закодированное изображение, потом копируем его в нужную папку и переименовываем? Правильно?

#4 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 06 Май 2013 - 18:41

Просмотр сообщенияAChekin (06 Май 2013 - 18:34) писал:

То есть мы сначала грузим изображение в КБ, потом вычислением находим закодированное изображение, потом копируем его в нужную папку и переименовываем? Правильно?
Переименовывать даже не нужно. Вам нужно будет использовать функцию copy(), в ней указывается имя получаемого файла. То есть Вам главное передать полный путь с именем файла. Подробнее http://www.php.net/m...nction.copy.php

#5 AChekin

    Участник

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

Отправлено 06 Май 2013 - 19:37

У меня получился вот такой код... Но файл определяется неверно.

$field_id = 'f3601';
$line_id = $line['ID'];
$fname = $line['Картинка'];
copy(get_file_path($field_id, $line_id, $fname), $_SERVER['DOCUMENT_ROOT'].'/files/'.$fname);
  
exit();


Посмотрите, пожалуйста, в чем может быть ошибка?
Спасибо.

#6 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 06 Май 2013 - 19:40

//без f
$field_id = "3601";
//если в поле изображение только одно, иначе не сработает верно. Так как нужно разбирать $line['Картинка'] построчно.
$fname = trim($line['Картинка']);

#7 AChekin

    Участник

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

Отправлено 06 Май 2013 - 20:01

$field_id = '3601';
$line_id = $line['ID'];
$fname = trim($line['Картинка']);
copy(get_file_path($field_id, $line_id, $fname), $_SERVER['DOCUMENT_ROOT'].'/files/'.$fname);
  
exit();

он все равно не верно определяет местонахождение файла. выдает ошибку

Warning: copy(/var/www/pactum/data/www/m.art20.ru/files/a3/39/a339e1fc4250de22b858f8a550a79349_3601_11_0): failed to open stream: No such file or directory in /var/www/pactum/data/www/m.art20.ru/include/functions1.php(265) : eval()'d code on line 5

и, собственно, этой директории и файла (/files/a3/39/a339e1fc4250de22b858f8a550a79349_3601_11_0) не существует на сервере вообще.

#8 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

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

$field_id = '41';
$line_id = $line['ID'];
$fname = trim($line['Фото']);
//каталог files2 - должен существовать, права на запись к этому каталогу должны 777
$path = '$_SERVER['DOCUMENT_ROOT'].'/files2/'.$fname';
copy(get_file_path($field_id, $line_id, $fname), $path);

Все отлично работает. Лично проверил.

#9 AChekin

    Участник

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

Отправлено 27 Май 2013 - 13:46

Просмотр сообщенияwondertalik (09 Май 2013 - 12:41) писал:

Все отлично работает. Лично проверил.

wondertalik, как с Вами можно связаться? Есть несколько вопросов..

#10 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 27 Май 2013 - 16:32

Форум, скайп. Контакты в профиле.

#11 AChekin

    Участник

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

Отправлено 30 Май 2013 - 14:47

Никак не получается с Вами связаться по указанным в профиле контактам...
Могли бы Вы указать эл.почту или написать мне на achekin#gmail.com !?

Спасибо.

#12 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 30 Май 2013 - 14:50

Просмотр сообщенияAChekin (30 Май 2013 - 14:47) писал:

Никак не получается с Вами связаться по указанным в профиле контактам...
Могли бы Вы указать эл.почту или написать мне на achekin#gmail.com !?

Спасибо.
У меня на блоге. Есть форма обратной связи. Можно туда писать спокойно. Уведомления я получаю на почту.





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

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