gpt4 book ai didi

php - Magento admin 文件上传不保存文件和路径

转载 作者:行者123 更新时间:2023-11-29 21:48:50 25 4
gpt4 key购买 nike

只是我对 magento 管理网格研究的继续。我正在尝试创建文件上传。保存过程已完成,没有错误,并且在数据库中添加了一个表行。

问题:

文件路径未保存在数据库中。

未创建目录路径,当然也没有将文件上传到服务器。

注意:该过程是通过网格和数据库中的附加表行完成的。

我只是从这个链接引用Magento image upload form field

问题:

  1. 如何为上传的文件创建目录文件夹?

  2. 如何将路径保存到数据库表中?

  3. config.xml中是否需要添加代码?

更新

终于解决了文件上传问题。感谢@PHP Weblineindia 指导我。这是我更新后的 Controller 。

public function saveAction() {
$post_data=$this->getRequest()->getPost();

if ($post_data) {
try {
//save file to the destination folder
if (isset($_FILES)){
if ($_FILES['file_path']['name']) {

$path = Mage::getBaseDir('media') . DS . 'rts' . DS .'pmadmin'.DS;
$uploader = new Varien_File_Uploader('file_path');
$uploader->setAllowedExtensions(array('PDF','pdf'));
$uploader->setAllowRenameFiles(false);
$uploader->setFilesDispersion(false);
$destFile = $path.$_FILES['file_path']['name'];
$filename = $uploader->getNewFileName($destFile);
$uploader->save($path, $filename);

$post_data['file_path']='rts/pmadmin/'.$filename;
}
}
//save file path to the database
$model = Mage::getModel("pmadmin/pmadmin")
->addData($post_data)
->setId($this->getRequest()->getParam("id"))
->save();

Mage::getSingleton("adminhtml/session")->addSuccess(Mage::helper("adminhtml")->__("File was successfully saved"));
Mage::getSingleton("adminhtml/session")->setPmadminData(false);

if ($this->getRequest()->getParam("back")) {
$this->_redirect("*/*/edit", array("id" => $model->getId()));
return;
}
$this->_redirect("*/*/");
return;
}
catch (Exception $e) {
Mage::getSingleton("adminhtml/session")->addError($e->getMessage());
Mage::getSingleton("adminhtml/session")->setPmadminData($this->getRequest()->getPost());
$this->_redirect("*/*/edit", array("id" => $this->getRequest()->getParam("id")));
return;
}

}
$this->_redirect("*/*/");
}

这是我的表格。

protected function _prepareForm() {

$form = new Varien_Data_Form(array(
'id' => 'edit_form',
'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
'method' => 'post',
'enctype' => 'multipart/form-data'
)
);

$form->setUseContainer(true);
$this->setForm($form);
return parent::_prepareForm();
}

路径应保存在表的 file_path 列中,文件应上传到 media/pmadmin 目录中。

谢谢!

最佳答案

@Rodge 您正在尝试使用如下所示的发布数据来获取文件数据

$postData = $this->getRequest()->getPost();
$postData['pmadmin_file'];

并且您想要上传文件类型,因此文件类型不是帖子的一部分。

尝试如下获取文件数据。

$file_name=$_FILES['pmadmin_file']['name'];

并测试您在 saveAction() 方法中获取文件名,之后您可以存储文件数据。在目录中。

在您的 Controller 文件中,您保存了诸如

之类的数据

if(isset($imgFilename))

    $newsModel->setImage($imgFilename);

$newsModel->setId($this->getRequest()->getParam('id'))
->setTitle($postData['title'])
->setShort_description($postData['short_description'])
->setCustomer_group_id($postData['customer_group_id'])
->setIs_active($postData['is_active'])
->setValue($postData['value'])
->save();

尝试像这样保存数据

if(isset($imgFilename)) {

        $newsModel->setId($this->getRequest()->getParam('id'))
->setTitle($postData['title'])
->setFilePath($imgFilename)
->setShortDescription($postData['short_description'])
->setCustomerGroupId($postData['customer_group_id'])
->setIsActive($postData['is_active'])
->setValue($postData['value'])
->save();

}

关于php - Magento admin 文件上传不保存文件和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862962/

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