Смотрите мой последний вопрос, так как это ссылки на него: PHP — перемещение нескольких файлов с разными именами файлов в собственный каталог
Поэтому я решил использовать Joomla API, однако документация была предназначена только для системы 1.5 и 2.5, но я использую 3.0. У меня есть несколько файлов, которые выглядят так:
«2005532-JoePharnel.pdf»
а также
«1205121-HarryCollins.pdf»
По сути, я хочу создать код PHP, который, когда кто-то ftp загружает эти файлы в папку загрузки, будет 1) Создать каталог, если он не существует, используя там имя 2) Переместить файлы в правильный каталог (например, JoePharnel в Каталог JoePharnel, игнорирующий номер в начале)
Обновлено: 23.10.14 — 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 — предполагается, что ‘JPATH_COMPONENT’ в /upload.php в строке 70. Но это не мешает работе, я так близок по этому вопросу, что любая помощь очень ценится. Я хочу знать, где это берет изображение, я думаю, что я разработал «DS» сейчас.
Спасибо
Задача ещё не решена.
Других решений пока нет …