在mysql -joomla中更改文件名,store在数据库中有唯一的名称?

时间:2011-07-13 13:08:52

标签: php mysql string image joomla

朋友们,这是我保存的代码 - >仅在插入基于id

成功完成时上传图像

但是有一个问题,即文件已经移动到上传文件夹但尚未在数据库中更新如何更新数据库中的上传图像并更改上传图像的名称以使其独特

像mypic.jpg在上传后变为mypic90.jpg,然后使用用户ID更新到数据库。我希望我的问题可以帮助像我这样的人吗?

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 个答案:

答案 0 :(得分:1)

将上传的文件重命名为问候语的唯一ID,并保留文件扩展名。因此,您将避免文件名冲突:

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

会有90.jpg 91.png 92.gif等文件。