gpt4 book ai didi

php - 如何在 zend 框架中命名上传的文件

转载 作者:可可西里 更新时间:2023-10-31 22:07:28 24 4
gpt4 key购买 nike

我有一个表格,其中包含图像的代码如下所示

$image->setDestination(APPLICATION_PATH . '/../public/images/upload'); 

在我的 Controller 中有

if($countryForm->image->isUploaded())
{
$countryForm->image->receive();
$countryModel->addCountry(
$countryForm->getValue('name'),
$countryForm->getValue('description'),
$this->view->baseUrl('/images/upload/'.basename($countryForm->image->getFileName()))
);
}

如何更改上传文件的名称。我想将它设置为

random(100).time().ext

尝试这段代码

 if($form->image->isUploaded()){
$upload = new Zend_File_Transfer();
$upload->addFilter('Rename', array('target' => APPLICATION_PATH.'/../images/upload/'.time().'.jpg', 'overwrite' => true));
$form->image->receive();
$filename = $form->image->getFilename();
$pageModel->addPage($form->getValue('pagetitle'),
$form->getValue('pagemetakeyword'),
$form->getValue('pagemetadescription'),
$form->getValue('pagecategory'),
$filename,
$form->getValue('pagecontent'),
$form->getValue('pagestatus')
);

}

仍然会在我的数据库中提供 'backend/public/images/upload/picture.jpg'

我的表单中有以下代码

 $image = $this->createElement('file', 'image'); 
$image->setLabel('Image: ');
$image->setRequired(FALSE);
$image->setDestination(APPLICATION_PATH . '/../public/images/upload/');
$image->addValidator('Count', false, 1);
$image->addValidator('Size', false, 1024000);
$image->addValidator('Extension', false, 'jpg,jpeg,png,gif');
$this->addElement($image);

我正在使用 Ubuntu

最佳答案

在您的表单类中添加如下元素:

$fileDestination = realpath(APPLICATION_PATH.'/../images/upload/');
$this->addElement('file','cover', array(
'label' => 'Cover:',
'required' => false,
'destination' => $fileDestination,
'validators' => array(
array('Count', false, array(1)),
array('Size', false, array(1048576 * 5)),
array('Extension', false, array('jpg,png,gif')),
),
'decorators' => $this->_elementDecorator
));

在你的 Controller 中:

$originalFilename = pathinfo($form->image->getFileName());
$newName = rand(1,100) . time() . $originalFilename['extension'];
$form->cover->addFilter('Rename', $newName);
$data = $form->getValues();

关于php - 如何在 zend 框架中命名上传的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4358154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com