php - Joomla 自定义组件中的基本图像上传

标签 php image joomla joomla2.5

我正在尝试将图像上传功能添加到我正在创建模型的 View 中。我在这里尝试了许多示例代码,但无法获取文件的完整路径。我的代码如下所示:

public function submit() {
    jimport ( 'joomla.filesystem.file' );
    // Check for request forgeries.
    JRequest::checkToken () or jexit ( JText::_ ( 'JINVALID_TOKEN' ) );

    // Initialise variables.
    $app = JFactory::getApplication ();
    $model = $this->getModel ( 'createaction' );

    // Get the data from the form POST
    $data = JRequest::getVar ( 'jform', array (), 'post', 'array' );

    echo $data['image'];   <-- here

    $createdItem = $model->createItem ( $data );
    if ($createdItem) {
        $redirect = JRoute::_ ( 'index.php?option=com_akcehned&view=actions', false );
        $this->setRedirect ( $redirect, "Akce byla vytvořena" );
    } else {
        echo "<h2>Omlouváme se, ale něco se stalo špatně</h2>";
    }

    return true;
}

xml中的部分文件输入:

    <field 
        name="image" 
        type="file" 
        description="COM_AKCEHNED_FORM_DESC_CREATEACTION_IMAGE" 
        label="COM_AKCEHNED_FORM_LBL_CREATEACTION_IMAGE" 
        size="10" 
        accept="image/*" />

在我尝试回显文件文件输入的地方,我只得到名称(image_name.jpg 等),但我需要完整路径,对吗?我看到了 ['tmp_name'] 的示例,但它对我不起作用。 我尝试过这样的代码:

$jinput = $app->input;
$files = $jinput->files->get('jform');
$file = $files['image'];
echo $file;
echo $file['tmp_name'];

但这对我来说也不起作用。我只是得到空值。有人可以给我工作代码块,让我从其他输入获取数据以及上传文件的完整路径吗?适用于 joomla 2.5,谢谢

最佳答案

如果您要上传文件,您需要确保表单标记包含 enctype 属性,并且将其设置为“multipart/form-data”。

例如

<form action="" method="post" enctype="multipart/form-data">

另请参阅:What does enctype='multipart/form-data' mean?

关于php - Joomla 自定义组件中的基本图像上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19432354/

相关文章:

php - 当它是 PHP 中的最后一个元素时写一个点而不是逗号

c# - 在图片框中显示一组图像?

image - 没有x服务器的opencv显示图像

php - joomla 分页无法正常工作

joomla - K2图像信息是如何存储的?

search - joomla 1.5 搜索与自定义组件的集成?

php - Element.text 不是函数

php - 使用 PHP 5.2.X 扩展单例

javascript - Laravel/Javascript Web 表单捕获应用程序

html - 如何在浏览器中显示不断变化的图像文件而不会出现刷新闪烁?