У меня странная проблема с компонентом, над которым я работаю. Компонент имеет форму, которая включает загрузку файла. Код проверяет дубликаты имен файлов и добавляет счетчик в конец. Все это отлично работает, за исключением того, что я пытаюсь изменить запись и изменить связанный файл.Joomla Development - Не удалось переместить файл
Я использовал компонент создателя построить скелет в этом коде работает для обновления -
//Replace any special characters in the filename
$filename = explode('.', $file['name']);
$filename[0] = preg_replace("/[^A-Za-z0-9]/i", "-", $filename[0]);
//Add Timestamp MD5 to avoid overwriting
$filename = md5(time()) . '-' . implode('.',$filename);
$uploadPath = '/var/www/plm_anz/' . $filename;
$fileTemp = $file['tmp_name'];
if(!JFile::exists($uploadPath)){
if (!JFile::upload($fileTemp, $uploadPath)){
JError::raiseWarning(500, 'Error moving file');
return false;
}
}
$array['ping_location'] = $filename;
Когда я обновить код, чтобы удалить сумму MD5 и добавляемый счетчик все это разваливается ..
//Replace any special characters in the filename
$filename = explode('.', $file['name']);
$filename[0] = preg_replace("/[^A-Za-z0-9]/i", "-", $filename[0]);
$originalFile = $finalFile = $file['name'];
$fileCounter = 1;
//Rename duplicate files
$fileprefix = pathinfo($originalFile, PATHINFO_FILENAME);
$extension = pathinfo($originalFile, PATHINFO_EXTENSION);
while (file_exists('/var/www/plm_anz/'.$finalFile)){
$finalFile = $fileprefix . '_' . $fileCounter++ . '.' . $extension;
}
$uploadPath = '/var/www/plm_anz/' . $finalFile;
$fileTemp = $file['tmp_name'];
if (!JFile::upload($fileTemp, $uploadPath)){
$fileMessage = "Error moving file - temp file:". $fileTemp . " Upload path ". $uploadPath;
JError::raiseWarning(500, $fileMessage);
return false;
}
Я сузил причину имени файла, которое создает цикл while, но не может понять, почему он только нарушает обновление формы, а не форму представления новой формы.
Я получаю ошибку в Joomla (3.4):
Error
Error moving file - temp file:/tmp/phpgwag5r Upload path /var/www/plm_anz/com_hotcase_6.zip
Save failed with the following error:
Я знаю, что это что-то простое, но я смотрел на него слишком долго, чтобы увидеть его!
Спасибо!
У вас есть все права на запись в папку? Что вы имеете в виду: «это только разрывает обновление формы, а не новую форму представления»? так что первый раз работает, и когда вы его обновляете, нет? – borracciaBlu
У меня есть разрешение на папку. Я могу отправить форму, и файлы будут загружаться, как и ожидалось. Проблема возникает, если я нажимаю на запись для ее редактирования и пытаюсь изменить прикрепленный файл. –