2013-10-17 55 views
2

我想添加圖片上傳功能到我創建模型的視圖中。我在這裏嘗試了很多示例代碼,但是我無法獲得完整的文件路徑。我的代碼如下所示:Joomla自定義組件中的基本圖片上傳

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等),但我需要FULLPATH對?我看到['tmp_name']的例子,但它不適合我。 我想這樣的代碼:

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

但它不是爲我工作無論是。我只是得到空值。有人可以給我工作的代碼塊,從其他輸入和全路徑獲取數據到上傳文件?這是爲Joomla 2.5,感謝

+0

你能提供的var_dump($ _ FILES)? – WooDzu

+0

當我呼籲回聲,我得到「陣列(0){}」,但我選擇文件。 –

回答

1

你需要確保的形式標記包含ENCTYPE屬性,它被設置爲「的multipart/form-data的」如果你要上傳的文件。

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

另見:What does enctype='multipart/form-data' mean?

+0

我很愚蠢。我在我的視圖中標記了enctype,但我將它添加到文件的輸入中。現在,當我將它添加到表單標籤時,它會更好,並且我可以得到正確的結果。謝謝 –

1

你嘗試DPAttachments,只需三行代碼的附件支持集成到您的組件。

if (JLoader::import('components.com_dpattachments.libraries.dpattachments.core', JPATH_ADMINISTRATOR)) { 
    echo DPAttachmentsCore::render('com_demo.item', $object->id); 
} 

支持從剪貼板拖放和複製粘貼(無需將文件保存到硬盤)。也許你想試試看。如果不是在這裏是對GitHub庫的鏈接如何上傳功能實現: https://github.com/Digital-Peak/DPAttachments/blob/master/com_dpattachments/admin/models/attachment.php#L50

[我這個組件的作者]