Мне нужно загрузить изображение в таблицу, а также в папку.please помогите мне, как я сохраню изображение в папке и базе данных. пожалуйста, опишите метод.Как сохранить изображение в cakephp
Благодаря Manish
Мне нужно загрузить изображение в таблицу, а также в папку.please помогите мне, как я сохраню изображение в папке и базе данных. пожалуйста, опишите метод.Как сохранить изображение в cakephp
Благодаря Manish
Вы можете сделать это "как обычно" в PHP. Я просто сделал это несколько дней назад, как это:
$path = "/img/avatars/";
$dir = getcwd().$path;
$avatarFile = "$dir$id.png";
if (isset($this->data['User']['avatar']) && $this->data['User']['avatar']['error'] == 0) {
$avatar = $this->data['User']['avatar'];
if (!is_uploaded_file($avatar['tmp_name'])) $this->Utils->panic($avatar);
if (in_array($avatar['type'], array('image/jpeg','image/pjpeg','image/png'))) {
// load image
list($width, $height) = getimagesize($avatar['tmp_name']);
$width = $height = min($width, $height);
if (in_array($avatar['type'], array('image/jpeg','image/pjpeg')))
$source = imagecreatefromjpeg($avatar['tmp_name']);
else
$source = imagecreatefrompng($avatar['tmp_name']);
// resize
$thumb = imagecreatetruecolor(128, 128);
imagecopyresized($thumb, $source, 0, 0, 0, 0, 128, 128, $width, $height);
// save resized & unlink upload
imagepng($thumb, $avatarFile);
$success &= true;
} else {
$this->User->invalidate('avatar', __("Only JPG or PNG accepted.",true));
$success &= false;
}
unlink($avatar['tmp_name']); // Delete upload in any case
}
Он даже собирается изменить его для вас всегда 128x128, вы можете пропустить это и просто переименовать загруженное изображение в целевой директории. Google также поможет вам, нет ничего особенного для загрузки файлов.
загрузка форма:
echo $form->create('User', array(
'enctype' => 'multipart/form-data',
'type' => 'post',
));
echo $form->input('avatar', array('type' => 'file', 'label' => __('Avatar:',true)));
Дополнительная информация: в основном загруженные файлы хранятся в файловой системе, и ссылка на него (имя файла) в БД. Не храните файлы в БД. В моем случае я ничего не хранил в БД, потому что у каждого пользователя может быть только один аватар, поэтому я просто перезаписываю существующий файл, никакой ссылки в БД не требуется. – sibidiba
Спасибо за теплый ответ ....... Я хочу загрузить изображение в папку, а не в database.if у вас есть код, пожалуйста, помогите мне, в настоящее время я использую 1.3 версию cakephp Спасибо – manish
Почти мог скопировать ваш пример. Благодаря! – nicojs