Реализация функции переименования в массиве файлов Stack Overflow

Я объясню это как смогу, так как сейчас у меня проблемы с реализацией функции для переименования файла, у меня в настоящее время есть функция списка файлов, которая вызывается на моей веб-странице, и это выглядит так:

введите описание изображения здесь

Я хочу создать еще одну кнопку переименования, которая изменяет имя файла на введенное пользователем значение, в настоящее время функция выглядит следующим образом:

<?php
function renameFile($dir, $fileToRename, $newname){
if (is_dir($dir)) {
if ($dirHandle = opendir($dir)) {
$files = array_diff(scandir($dir), array('.', '..', '.htaccess'));
if($files){
foreach($files as $file){
if($file === $fileToRename) {
rename($dir."\\".$fileToRename, $dir."\\".$newname );
$output = 'Successfully renamed file: '.$fileToRename;
}
}
}
}
}
return $output;
}
'<form>
<input type="text" id="newname"/>
<input type="hidden" value="'.$file.'" name="fileToRename"/>
<input type="button" value="rename" onclick="rename($dir, $fileToRename, this.newname)"/>
</form>'?>

Я также добавлю код для перечисления файлов, так как это может быть актуально:

function listFiles($dir)
{
function deleteFile($dir, $fileToDelete){
if (is_dir($dir)) {
if ($dirHandle = opendir($dir)) {
$files = array_diff(scandir($dir), array('.', '..', '.htaccess'));
if($files){
foreach($files as $file){
if($file === $fileToDelete) {
unlink($dir."\\".$fileToDelete);
$output = 'Successfully deleted file: '.$fileToDelete;
}
}
}
}
}
return $output;
}
if(isset($_POST)){
echo deleteFile($_SESSION['UserFolder'], $_POST['fileToDelete']);
}

{
$output = '';  $outRows = '';  $files = array();
if (is_dir($dir)) {
if ($dirHandle = opendir($dir)) {
$files = array_diff(scandir($dir), array('.', '..', '.htaccess'));
$totalSize = (int) 0;
foreach($files as $file) {
$fileTime = @date("d-M-Y", filectime($dir . '/' . $file)) . ' ' . @date("h:i",          filemtime($dir . '/' . $file));
$totalSize += filesize($dir . '/' . $file);
$fileSize = @byte_convert(filesize($dir . '/' . $file));
$cellLink = '<td class="list_files_table_file_link"><a href="'. $dir ."/".          $file     . '">' . $file . '</a></td>';
$cellTime = '<td>' . $fileTime . '</td>';
$cellOptions = '<td>'. '<form action="MyFiles.php" method="POST"><input type="hidden" value="'.$file.'" name="fileToDelete"/><input type="submit" value="Delete" name="deleteButton"/></form>' .'<td>';
$cellSize = '<td>' . $fileSize . '</td>';
//$deleteCell = '<td><form action="Delete.php" method="POST"><input                  type="hidden" value="'.$file.'" name="fileToDelete"/><input type="submit"               value="click" name="deleteButton"/></form></td>';
$outRows .= '<tr>' . "\n  " . $cellLink . "\n  " . $cellTime . "\n  " . $cellSize   . "\n" . $cellOptions . '</tr>' . "\n";
}
closedir($dirHandle);
}

Форма будет вызываться в $ cellOptions, чтобы кнопка поиска располагалась рядом с кнопкой удаления для применения к нужным файлам. Я пытался реализовать это, но продолжаю появляться ошибки, такие как:

Синтаксическая ошибка, неожиданная (T_CONSTANT_ENCAPSED_STRING)

среди нескольких других я пропускаю что-то? Или просто делаю это неправильно в общем, я знаю, что это долго, но я очень ценю, что вы нашли время, чтобы прочитать это

0

Решение

Я думаю, вам нужно изменить эту строку

rename($dir."\\".$fileToRename, $dir."\\".$newname );

в

rename('.$dir."\\".$fileToRename.', '.$dir."\\".$newname.' );
0

Другие решения

Вы знаете, я думаю, что в этом:

if(file_put_contents(file_get_contents($customName),$newName)){
deleteFunction($custonName);
}

Я не пробовал это, но я думаю, что это будет работать
PD: мой английский не очень хорош

0

По вопросам рекламы [email protected]