问答详情
源自:1-5 创建文件

为什么我创建文件提示文件创建失败···,下面是代码


<?php
error_reporting(E_ALL || ~E_NOTICE);
require_once "dir.func.php";
require_once "file.func.php";
require_once "common.func.php";
$path="file";
$info=readDirectory($path);
$act=@$_REQUEST['act'];
$filename=@$_REQUEST['filename'];
$redirect="index.php?path={$path}";
if($act=='创建文件'){
   //echo $path."--";
   //echo $filename;
   $mes=creatfile($path."/".$filename);
   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>
       文件管理器
   </title>
   <link rel="stylesheet" href="cikonss.css" />
   <script src="jquery-ui/js/jquery-1.10.2.js"></script>
   <script src="jquery-ui/js/jquery-ui-1.10.4.custom.js"></script>
   <script src="jquery-ui/js/jquery-ui-1.10.4.custom.min.js"></script>
   <link rel="stylesheet" href="jquery-ui/css/ui-lightness/jquery-ui-1.10.4.custom.css"  type="text/css"/>
   <style type="text/css">
       body,p,div,ul,ol,table,dl,dd,dt{
           margin:0;
           padding: 0;
       }
       a{
           text-decoration: none;
       }
       ul,li{
           list-style: none;
           float: left;
       }
       #top{
           width:100%;
           height:48px;
           margin:0 auto;
           background: #E2E2E2;
       }
       #navi a{
           display: block;
           width:48px;
           height: 48px;
       }
       #main{
           margin:0 auto;
           border:2px solid #ABCDEF;
       }
       .small{
           width:25px;
           height:25px;
           border:0;
       }
   </style>
   <script type="text/javascript">
       function show(dis){
          document.getElementById(dis).style.display="block";
       }
   </script>
</head>
<body>
<div id="showDetail"  style="display:none"><img src="" id="showImg" alt=""/></div>
<h1>慕课网-在线文件管理器</h1>
<div id="top">
   <ul id="navi">
       <li><a href="index.php" title="主目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-home"></span></span></a></li>
       <li><a href="#"  onclick="show('createFile')" title="新建文件" ><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-file"></span></span></a></li>
       <li><a href="#"  onclick="show('createFolder')" title="新建文件夹"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-folder"></span></span></a></li>
       <li><a href="#" onclick="show('uploadFile')"title="上传文件"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-upload"></span></span></a></li>
       <li><a href="#" title="返回上级目录" onclick="goBack('<?php echo $back;?>')"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-arrowLeft"></span></span></a></li>
   </ul>
</div>
<form action="index.php" method="post" enctype="multipart/form-data">
<table width="100%" border="1" cellpadding="10" cellspacing="0" bgcolor="#6495ed" align="center";>
   <tr id="createFolder"  style="display:none;">
       <td>请输入文件夹名称</td>
       <td >
           <input type="text" name="dirname" />
           <input type="hidden" name="path"  value="<?php echo $path;?>"/>
           <input type="submit"  name="act"  value="创建文件夹"/>
       </td>
   </tr>
   <tr id="createFile"  style="display:none;">
       <td>请输入文件名称</td>
       <td >
           <input type="text"  name="filename" />
           <input type="hidden" name="path" value="<?php echo $path;?>"/>
           <input type="submit"  name="act" value="创建文件" />
       </td>
   </tr>
   <tr id="uploadFile" style="display:none;">
       <td >请选择要上传的文件</td>
       <td ><input type="file" name="myFile" />
           <input type="submit" name="act" value="上传文件" />
       </td>
   </tr>
   <tr style="color: white;text-align: center;">
       <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['file']) {
       $i = 0;
       foreach ($info['file'] as $val) {
           $p = $path . '/' . $val;
           ?>
           <tr style="text-align: center;">
               <td><?php echo $i ?></td>
               <td><?php echo $val ?></td>
               <td><?php echo filetype($p)?></td>
               <td><?php echo transByte(filesize($p))?></td>
               <td><?php  $src=is_readable($p)?"correct.png":"error.png"?><img class="small" src="images/<?php echo $src ?>" alt=""/></td>
               <td><?php  $src=is_writable($p)?"correct.png":"error.png"?><img class="small" src="images/<?php echo $src ?>" alt=""/></td>
               <td><?php  $src=is_executable($p)?"correct.png":"error.png"?><img class="small" src="images/<?php echo $src ?>" alt=""/></td>
               <td><?php  echo date("Y-m-d H:i:s",filectime($p))?></td>
               <td><?php  echo date("Y-m-d H:i:s",filemtime($p))?></td>
               <td><?php  echo date("Y-m-d H:i:s",fileatime($p))?></td>
               <td>
                   <a href="#"><img class="small" src="images/show.png"  alt="" title="查看"/></a>|
                   <a href="#"><img class="small" src="images/edit.png"  alt="" title="修改"/></a>|
                   <a href="#"><img class="small" src="images/rename.png"  alt="" title="重命名"/></a>|
                   <a href="#"><img class="small" src="images/copy.png"  alt="" title="复制"/></a>|
                   <a href="#"><img class="small" src="images/cut.png"  alt="" title="剪切"/></a>|
                   <a href="#"  ><img class="small" src="images/delete.png"  alt="" title="删除"/></a>|
                   <a href="#"><img class="small"  src="images/download.png"  alt="" title="下载"/></a>
               </td>
           </tr>
           <?php
           $i++;
       }
   }
   ?>
   </table>
</form>
</body>
</html>

<?php
function transByte ($size){
   $arr = array ("B", "KB", "MB", "GB", "TB", "EB" );
   $i=0;
   while ($size>=1024){
       $size/=1024;
       $i++;
   }
   return round($size,2).$arr[$i];
}

function creatfile($filename){
   $mat="/[\/,\*,<>,\?\|]/";
   if(!preg_match($mat,basename($filename))){
       if(!file_exists($filename)){
           if (fopen($filename)){
               return "文件创建成功";
           }else{
               return "文件创建失败";
           }
       }else{
           return"文件已存在";
       }
   }else{
       return"文件名不符合要求";
   }
}

提问者:simon_wyk 2017-07-13 16:19

个回答

  • 花落心微凉
    2017-07-17 17:41:12

    fopen需要两个必选参数