rename()对文件夹操作引发了SFTP出问题,

来源:-

金牌教父

2015-08-04 11:56

跟King老师一步步做,学到了很多东西,但我对linux是菜鸟,不知是哪里出问题了,百度了两天了,也没能查了问题。

rename()删除或重命名文件夹,点击后,ubuntu要反应很长时间,才能响应,操作的确成功了,但我的Sftp随之也坏掉不能上传文件了,上传操作只上传个文件名,零字节,报unknow error

求King老师指点!!!

<?php
require_once 'inc/common.func.php';
$act=$_REQUEST['act'];
$dst=$_REQUEST['dst'];
$ori=$_REQUEST['ori'];
$path='file';
$path=$_REQUEST['path']?$_REQUEST['path']:$path;
$redirect="?path={$path}";

//$filename=$_REQUEST['filename'];
//$newname=$_REQUEST['newname'];
//$dirname=$_REQUEST['dirname']; 

$back=($path=="file")?"file":dirname($path);
$info=readDirectory($path);
//print_r($info);
//if(!$info){
//	echo "<Script>alert('没有文件或目录');location.href='?'<//script>"	;
//};

if($act=='createFile'){//创建文件
	$mes=createFile($path."/".$dst);
	alertMes($mes,$redirect);
	
}elseif($act=='editContent'){//修改文件 内容的操作
	$mes=editContent($path.'/'.$ori,$dst);
	alertMes($mes,$redirect);

}elseif($act=="renameFile"){//实现重命名操作
//echo $ori.'-----'.$dst;
	$mes=renameFile($ori,$dst);
	alertMes($mes,$redirect);
	
}elseif($act=="delFile"){//删除文件 
	$mes=delfile($ori);
	alertMes($mes,$redirect);

}elseif($act=="downFile"){//下载文件 
	$mes=downFile($filename);
//	alertMes($mes,$redirect);	

}elseif($act=="createFolder"){//创建文件夹
//	echo $path."----".$dirname;
	$mes=createFolder($path,$dst);
	alertMes($mes,$redirect);

}elseif($act=="renameFolder"){
//	echo $newname,"----",$dirname,"------",$path;
	$mes=renameFolder($ori,$path.'/'.$dst);
	alertMes($mes,$redirect);


}elseif($act=="copyFolder"){
//	echo $ori,'----',$path."/".$dst."/".basename($ori);
	$mes=copyFolder($ori,$path."/".$dst."/".basename($ori));
	alertMes($mes,$redirect);
	
}elseif($act=="cutFolder"){
//	echo $ori,'----',$path."/".$dst."/".basename($ori);
	$mes=cutFolder($ori,$path."/".$dst."/".basename($ori));
	alertMes($mes,$redirect);

}elseif($act=="copyFile"){
	$mes=copyFile($ori,$path."/".$dst."/".basename($ori));
	alertMes($mes,$redirect);

}elseif($act=="cutFile"){
	$mes=cutFile($ori,$path."/".$dst."/".basename($ori));
	alertMes($mes,$redirect);	

}elseif($act=="delFolder"){
//	echo $ori;
	$mes=delFolder($ori);
	alertMes($mes,$redirect);	
	
}elseif($act=="uploadFile"){
//	print_r($_FILES);
	$fileInfo=$_FILES['dst'];
	$mes=uploadFile($fileInfo,$path);
	alertMes($mes,$redirect);
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>filelist</title>
<link rel="stylesheet" href="inc/jquery-ui.css" />
<style type="text/css">
body,p,div,ul,ol,table{	magin:0;	padding:0;	}
#fitop span,.Opt span{cursor:pointer}
.TTh td{background-color:#ABCDEF;border-bottom:1px #000000 solid;}
.BBh td{border-bottom:1px #000000 dotted;}

</style>

</head>
<!--
<script src="inc/jquery-1.11.1.min.js"></script>
<script src="inc/jquery-ui.js"></script>
-->
<script src="inc/jquery-1.10.2.js"></script>
<script src="inc/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	$("#EditSaveBut").click(function(){
//		alert ("ddd")
	})
})

function show(act,ori){
	var bstr="";
	switch(act){
		case "createFolder":
		var bstr="输入文件夹名称:";
		var bstr= bstr +"<input type='text' name='dst' />";
		var bstr= bstr +"<input type='submit' value='创建文件夹' />";
		break;

		case "createFile":
		var bstr="输入新建文件名称:";
		var bstr= bstr +"<input type='text' name='dst' />";
		var bstr= bstr +"<input type='submit' value='新建文件' />";
		break;
		
		case "uploadFile":
		var bstr="选择要上传的文件:";
		var bstr= bstr +"<input type='file' name='dst' />";
		var bstr= bstr +"<input type='submit' value='上传文件' />";
		$("#myform").attr("enctype","multipart/form-data");	
		break;
		
		case "renameFolder":
		var bstr="请填写新文件夹名称:";
		var bstr= bstr +"<input type='hidden' name='ori' value='"+ori+"' />";
		var bstr= bstr +"<input type='text' name='dst' placeholder='重命名文件夹'/>";
		var bstr= bstr +"<input type='submit' value='重命名文件夹' />";		
		break;

		case "renameFile":
		var bstr="请填写新文件名称:";
		var bstr= bstr +"<input type='hidden' name='ori' value='"+ori+"' />";
		var bstr= bstr +"<input type='text' name='dst' placeholder='无需后缀名'/>";
		var bstr= bstr +"<input type='submit' value='重命名文件' />";		
		break;

		case "copyFolder":
		var bstr="将文件夹复制到:";
		var bstr= bstr +"<input type='hidden' value='"+ori+"' name='ori' />";
		var bstr= bstr +"<input type='text' name='dst' placeholder='目的文件夹'/>";
		var bstr= bstr +"<input type='submit' value='复制文件夹' />";		
		break;

		case "copyFile":
		var bstr="将文件复制到:";
		var bstr= bstr +"<input type='hidden' value='"+ori+"' name='ori' />";
		var bstr= bstr +"<input type='text' name='dst' placeholder='目的文件夹必须存在'/>";
		var bstr= bstr +"<input type='submit' value='复制文件' />";		
		break;

		case "cutFolder":
		var bstr="将文件夹剪切到:";
		var bstr= bstr +"<input type='text' value='"+ori+"' name='ori' />";
		var bstr= bstr +"<input type='text' name='dst' placeholder='目的文件夹自动创建'/>";
		var bstr= bstr +"<input type='submit' value='剪切文件夹' />";		
		break;
		
		case "cutFile":
		var bstr="将文件剪切到:";
		var bstr= bstr +"<input type='hidden' value='"+ori+"' name='ori' />";
		var bstr= bstr +"<input type='text' name='dst' placeholder='目的文件夹'/>";
		var bstr= bstr +"<input type='submit' value='剪切文件' />";		
		break;
		
		case "delFolder":
		if(window.confirm("确定删除文件夹?否则取消")){
			location.href="?act=delFolder&ori="+ori;
		};
		break;		
		
		case "delFile":
		if(window.confirm("确定删除文件?否则取消")){
			location.href="?act=delFile&ori="+ori;
		};
		break;			
		
	};
	$("#act").val(act);
	$("#bstr").html(bstr);
};
function delFile(filename){
	var path=$("#path").val();
//	alert(path+"----"+filename);
	if(window.confirm("确定删除?否则取消")){
		location.href="?act=delFile&ori="+filename;
	}
}
function showDetail(w,t,f){
	var con="";
	if(w=='View'){
		con="<img src='"+f+"'>";
		$("#DetailShow").html(con);
	};
	if(w=='Edit'){
		var path=$("#path").val();
		$.post("ajax.php",{"act":"getcon","fileGet":f},function(data,status){
			con = con + "<form action='?' method='post'>";
			con = con + "<input type='hidden' name='act' value='editContent'>";
			con = con + "<input type='hidden' value='"+t+"' name='ori' /><br>";
			con = con + "<input type='hidden' value='"+path+"' name='path'>"
			con = con + "<textarea name='dst' cols='60' rows='10'>"+data+"</textarea><br>";
			con = con + "<input type='submit' value='修改文件' />";
			con = con + "</form>";
			$("#DetailShow").html(con);
		});
	};
	$("#DetailShow").dialog({
		height:"auto",
		width:"auto",
		postition:{my:"center",at:"center",collision:"fit"},
		modal:false,
		draggable:true,
		resizable:true,
		title:w+":"+t,
		show:"slide",
		hide:"explode"
	})
}

function goBack($back){
	location.href='?path='+$back;
}
</script>
<body>

<h1>在线文件管理器</h1>
<div id="fitop">
【当前目录:<?php echo $path;?>】
【<span onclick="show('createFile');">新建文件</span>】
【<span onclick="show('createFolder');">新建文件夹</span>】
【<span onclick="show('uploadFile');">上传文件</span>】
【<span onclick="goBack('<?php echo $back;?>');">返回上层目录</span>】
<form action="?" method="post" id="myform" style="float:right">
<input type="hidden" id="act" name="act" value="" />
<input type="hidden" id="path" name="path" value="<?php echo $path;?>" />
<span id="bstr"></span>
</form>
</div>

<div id="DetailShow" style="display:none"></div>

<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr bgcolor="ABCDEF" class="TTh">
<td>编号</td><td>名称</td><td>类型</td><td>大小</td><td>可读</td><td>可写</td><td>可执行</td><td>创建时间</td><td>修改时间</td><td>访问时间</td><td>操作</td>
</tr>
<!--读取目录的操作-->
<?php
if($info['dir']){
	$i=1;
	foreach($info['dir'] as $val){
	$p=$path."/".$val;	
?>	
<tr class='BBh'>
	<td><?php echo $i;?></td>
    <td><a href="?path=<?php echo $p;?>"><?php echo $val;?></a></td>
    <td><?php echo filetype($p)=="file"?"文件":"目录";?></td>
	<td><?php $sum=0;echo transByte(dirSize($p));?></td>
    <td><?php echo is_readable($p)?"可读":"不可";?></td>
    <td><?php echo is_writable($p)?"可写":"不可";?></td>
    <td><?php echo is_executable($p)?"可执行":"不可";?></td>
    <td><?php echo date("Y-m-d",filectime($p));?></td>
    <td><?php echo date("Y-m-d",filemtime($p));?></td>
    <td><?php echo date("Y-m-d",fileatime($p));?></td>
    <td class="Opt">
<!-- 文件夹在rename()操作时有问题 -->
【<a href="?path=<?php echo $p;?>">进入</a>】
【<span onclick="show('renameFolder','<?php echo $p;?>');">重命名</span>】
【<span onclick="show('copyFolder','<?php echo $p;?>');">复制到</span>】
【<span onclick="show('cutFolder','<?php echo $p;?>');">剪切到</span>】
【<span onclick="show('delFolder','<?php echo $p;?>');">删除</span>】
   </td>
</tr>
<?php	$i++;	}}?>
<!--读取文件操作-->
<?php
if($info['file']){
	(!$i)?$i=1:$i++;
	foreach($info['file'] as $val){
	$p=$path."/".$val;	
?>	
<tr class='BBh'>
	<td><?php echo $i;?></td>
    <td><?php echo $val;?></td>
    <td><?php echo filetype($p)=="file"?"文件":"目录";?></td>
    <td><?php echo transByte(filesize($p));?></td>
    <td><?php echo is_readable($p)?"可读":"不可";?></td>
    <td><?php echo is_writable($p)?"可写":"不可";?></td>
    <td><?php echo is_executable($p)?"可执行":"不可";?></td>
    <td><?php echo date("Y-m-d",filectime($p));?></td>
    <td><?php echo date("Y-m-d",filemtime($p));?></td>
    <td><?php echo date("Y-m-d",fileatime($p));?></td>
    <td class="Opt">
【<a href="?act=downFile&path=<?php echo $path;?>&filename=<?php echo $p;?>">下载</a>】
【<span onclick="show('renameFile','<?php echo $p;?>');">重命名</span>】
【<span onclick="show('copyFile','<?php echo $p;?>');">复制到</span>】
【<span onclick="show('cutFile','<?php echo $p;?>');">剪切到</span>】
【<span onclick="show('delFile','<?php echo $p;?>');">删除</span>】
<?php $ext=strtolower(end(explode(".",$val)));
	$imageExt=array("gif","jpg","jpeg","png");
	if(in_array($ext,$imageExt)){
?>
【<span onclick="showDetail('View','<?php echo $val;?>','<?php echo $p;?>');">浏览</span>】
<?php	}else{?>
【<span onclick="showDetail('Edit','<?php echo $val;?>','<?php echo $p;?>');">编辑</span>】
<?php }?> 

</td>
</tr>
<?php	$i++;}}?>

</table>
</body>
</html>





写回答 关注

1回答

  • 金牌教父
    2015-08-07 17:15:20

    King老师呢

WEB在线文件管理器

通过本课程文件目录函数库的学习,让你掌握文件、目录函数库的应用

36223 学习 · 332 问题

查看课程

相似问题