我尽可能地解释这一点,因为我在实现重命名文件的功能时遇到了麻烦,我现在有一个列表文件功能,在我的网页上调用它使它看起来像这样:
我想创建另一个重命名按钮,将文件名更改为用户输入值,目前功能如下:
<?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 :(得分:0)
我认为您需要更改此行
rename($dir."\\".$fileToRename, $dir."\\".$newname );
到
rename('.$dir."\\".$fileToRename.', '.$dir."\\".$newname.' );
答案 1 :(得分:0)
你知道我认为:
if(file_put_contents(file_get_contents($customName),$newName)){
deleteFunction($custonName);
}
我没有尝试过,但我认为它会起作用 PD:我的英语不好