PHP - JPath将多个文件移动到正确的目录

时间:2014-10-21 14:34:00

标签: php joomla joomla3.0

查看我的上一个问题,因为这链接到它:PHP - Moving multiple files with different files names to own directory

所以我决定使用Joomla API,但文档仅适用于1.5和2.5系统,但我使用的是3.0。我有一些看起来像这样的文件:

" 2005532-JoePharnel.pdf"

" 1205121-HarryCollins.pdf"

基本上我想创建一个PHP代码,当有人将这些文件上传到上传文件夹时,它会1)创建一个目录,如果它不存在则使用名称2)将文件移动到正确的目录(例如JoePharnel向JoePharnel目录忽略开头的数字)

更新时间:2014年10月23日 - 14:05:

我的新代码会创建该文件夹,但不会将上传中的文件移动到该新文件夹中,代码如下:

       <?php

define( '_JEXEC', 1); 

define('JPATH', dirname(__FILE__) );

if (!defined('DS')){
    define( 'DS', DIRECTORY_SEPARATOR );


$parts = explode( DS, JPATH );  
$script_root =  implode( DS, $parts ) ;

// check path
$x = array_search ( 'administrator', $parts  );
if (!$x) exit;

$path = '';

for ($i=0; $i < $x; $i++){
    $path = $path.$parts[$i].DS; 
}
// remove last DS
$path = substr($path, 0, -1);

if (!defined('JPATH_BASE')){
    define('JPATH_BASE', $path );
}    

if (!defined('JPATH_SITE')){
    define('JPATH_SITE', $path );
}    

/* Required Files */
require_once ( JPATH_SITE . DS . 'includes' . DS . 'defines.php' );
require_once ( JPATH_SITE . DS . 'includes' . DS . 'framework.php' );
require_once ( JPATH_SITE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );


//Import filesystem libraries. Perhaps not necessary, but does not hurt

jimport('joomla.filesystem.path');
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
jimport('joomla.user.user');



//First we set up parameters
$searchpath = JPATH_BASE . DS . "upload";





//Then we create the subfolder called png
if ( !JFolder::create($searchpath . DS ."Images") ) {
   //Throw error message and stop script
}

//Now we read all png files and put them in an array.
$png_files = JFolder::files($searchpath,'.png');

//Now we need some stuff from the JFile:: class to move all files into the new folder
foreach ($png_files as $file) {
   JFile::move($searchpath. DS . ".png" . $file, $searchpath . DS. "Images" . $file);
}

//Lastly, we are moving the complete subdir to the root of the component.
if (JFolder::move($searchpath . DS. "Images",JPATH_COMPONENT) ) {
   //Redirect with perhaps a happy message
} else {
   //Throw an error

            }
}


?>

我得到的唯一错误是注意:使用未定义的常量JPATH_COMPONENT - 假设&#39; JPATH_COMPONENT&#39;在第70行的/upload.php中。但是没有阻止它正常工作,我非常接近任何帮助非常感谢。我想知道它拍摄图像的位置,我想我已经制定了&#34; DS&#34;现在

由于

0 个答案:

没有答案