изменить имя файла в mysql -joomla и хранить уникальное имя в базе данных? - PullRequest
0 голосов
/ 13 июля 2011

привет, друзья, это мой код для сохранения -> для загрузки изображения, только если вставка прошла успешно на основе идентификатора

но проблема в том, что файл перемещен в папку загрузки, но не был обновлен в базе данных. Как обновить загруженное изображение в базе данных и изменить имя загруженного изображения, чтобы его уникальное

как mypic.jpg становится mypic90.jpg после загрузки, а затем обновляется до базы данных с идентификатором пользователя. я надеюсь, что мой вопрос поможет другим, как я?

function save() {

        $greeting = JRequest::get ( 'POST' );
        $model = & $this->getModel ( 'greetings' );

        $id = $model->saveGreeting ( $greeting );

        if( !empty($id)){
            $file = JRequest::getVar ( 'greeting_pic', null, 'files', 'array' );

            jimport ( 'joomla.filesystem.file' );
            $filename = JFile::makeSafe ( $file ['name'] );

            //Set up the source and destination of the file
            $src = $file ['tmp_name'];

            //$dest = JPATH_ROOT . BI_IMAGE_BASE . "myfile.jpg<br>";
            $dest = JPATH_COMPONENT . DS . "uploads" . DS . $filename;

            JFile::upload ( $src, $dest );

            // update the field greeting_pic //
            //$result = $model->updateGreetingPic($filename, $id);
        }

        $redirectTo = JRoute::_ ( 'index.php?option=' . JRequest::getVar ( 'option' ) . '&task=display' );
        $this->setRedirect ( $redirectTo, 'Greeting Saved!' );
    }

1 Ответ

1 голос
/ 13 июля 2011

Переименуйте загруженный файл в уникальный идентификатор приветствия, сохраняя расширение файла. Таким образом вы избежите конфликтов имен файлов:

$newFileName = $id . '.' .  strtolower( JFile::getExt( $fileName));
$dest = JPATH_COMPONENT . DS . "uploads" . DS . $newFileName;
$result = $model->updateGreetingPic($newFileName, $id);

Будут файлы типа 90.jpg 91.png 92.gif и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...