2014-12-23 1 views
0

joomla 3 백엔드 모듈에서 파일을 업로드하고 싶습니다.Joomla 3 모듈에서 파일 업로드

나는 https://docs.joomla.org/How_to_use_the_filesystem_package라고 말했지만 파일 업로드 버튼이 표시되지 않습니다. 아마도 잘못된 것이 있거나 잘못된 파일에 넣었을 것입니까?

누구든지 도움을받을 수 있습니까? : D

감사합니다.

파일과 languages ​​태그 사이의 .xml 코드는 다음과 같습니다. 이후 다음에 mymodule.php

<params> 
    <param name="dir" type="text" label="Directory" description="Directory Upload" default="upload"/> 
    <param name="type" type="list" default="*" label="Select a file type" description="File type"> 
     <option value="*">Any File </option> 
     <option value="image/png">PNG</option> 
     <option value="image/gif">GIF</option> 
     <option value="image/jpeg">JPEG</option> 
     <option value="application/zip">ZIP</option> 
     <option value="application/x-gzip">TAR.GZ</option> 
     <option value="text/html">HTML</option> 
     <option value="text/plain">TXT</option> 
     <option value="application/pdf">PDF</option> 
     <option value="application/msword">DOC</option> 
     </param>   
    <param name="user_names" type="text" label="User Names (optional)" description="Names users (optionas)" default=""/>  
</params> 

'정의 ('_ JEXEC ') 또는 다이 ('제한된 액세스를 ');' 선.

//Import filesystem libraries. Perhaps not necessary, but does not hurt 
jimport('joomla.filesystem.file'); 

$max = ini_get('upload_max_filesize'); 
$module_dir = $params->get('dir'); 
$file_type = $params->get('type'); 

$user_names = $params->get('user_names'); 
$msg = ''; 

function fileUpload($max, $module_dir, $file_type, $msg){ 
//Retrieve file details from uploaded file, sent from upload form 
$file = JRequest::getVar('file_upload', null, 'files', 'array'); 
// Retorna: Array ([name] => mod_simpleupload_1.2.1.zip [type] => application/zip 
// [tmp_name] => /tmp/phpo3VG9F [error] => 0 [size] => 4463) 

if(isset($file)){ 
    //Clean up filename to get rid of strange characters like spaces etc 
    $filename = JFile::makeSafe($file['name']); 

    if($file['size'] > $max) $msg = JText::_('ONLY_FILES_UNDER').' '.$max; 
    //Set up the source and destination of the file 

    $src = $file['tmp_name']; 
    $dest = $module_dir . DS . $filename; 

    //First check if the file has the right extension, we need jpg only 
    if ($file['type'] == $file_type || $file_type == '*') { 
     if (JFile::upload($src, $dest)) { 

      //Redirect to a page of your choice 
     $msg = JText::_('FILE_SAVE_AS').' '.$dest; 
     } else { 
      //Redirect and throw an error message 
     $msg = JText::_('ERROR_IN_UPLOAD'); 
     } 
    } else { 
     //Redirect and notify user file is not right extension 
     $msg = JText::_('FILE_TYPE_INVALID'); 
    } 

    $msg = "<script>alert('". $msg ."');</script>"; 
} 
return $msg; 
} 

$user =& JFactory::getUser(); 
$username = $user->get('username'); 

$acc = 0; 
$session =& JFactory::getSession(); 

if(isset($user_names)) { 
$more = strpos($user_names, ',',0); 
if($more >0){ 
    $user_names = explode(',',$user_names); 
    foreach($user_names as $un){ 
     if($un == $username) { 
      $session->set($acc, 1); 
     }else{ 
      $session->set($acc, 0); 
     } 
    } 
}else{ 
    if ($user_names == $username) $session->set($acc, 1); 
} 
}else{ 
if(isset($username)) $session->set($acc, 1); 
} 

if($session->get($acc) == 1){ 
?> 

<form name="imgform" method="post" action="" enctype="multipart/form-data"  onSubmit="if(file_upload.value=='') {alert('Choose a file!');return false;}"> 
<?php echo JText::_('CHOOSE_FILE'); ?> <input type="file" name="file_upload" size="10" /> 
<input name="submit" type="submit" value="Upload" /> 
</form> 

<?php 
print fileUpload($max, $module_dir, $file_type, $msg); 
} 

// Adapted from http://docs.joomla.org/How_to_use_the_filesystem_package 
?> 
+0

당신이 갈이 우리에게 코드 – Lodder

+0

@Lodder을 보여주십시오 데 도움이! :) – mmm

답변

0

확인 2 잘못된 것이 있습니다.

먼저 매개 변수 필드의 기존 방법 인 <params>을 사용하고 있습니다.

둘째 https://docs.joomla.org/J3.x:Creating_a_simple_module/Adding_Form_Fields

, 당신의 mymodule.php 파일 모듈의 프론트 엔드입니다 떨어져 같은 데이터를 잡는에서 백엔드와 함께 할 아무것도 작동하지 않습니다 : 당신은 아래의 문서에 쇼 등의 분야를 사용할 필요가 귀하의 매개 변수.

당신이 할 수있는 일은 media 유형 필드를 생성하는 것입니다. custom form field입니다.

희망이

+0

고맙다 Lodder! 미디어가 잘 작동합니다! :디 – mmm