CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

不能上传文件名为数字的文件...如何解决...?????

楼主topflying(俊仔)2004-09-02 21:19:00 在 Web 开发 / PHP 提问

下面这一些代码用来上传一个文件名为数字的.他就会在文件夹"UPLOAD"同一目录下产生一个"ARRAY.XXX"的文件,其他文件名的文件名就不怕........  
   
   
   
  <?php  
  if(!is_array($HTTP_POST_FILES['file1'])){  
  echo   ("还没选上文件");  
  exit;  
  }  
  $f=&   $HTTP_POST_FILES['file1'];  
  //$max=&['name']  
  $dest_dir='uploads';  
  $fdt=   date('sYmdHis');  
   
   
  $dest=$dest_dir.'/'.$fdt;  
  switch($HTTP_POST_FILES['file1']['type']){  
  case   "image/pjpeg":  
                    $fname   =   $dest   .   ".jpg";  
                    break;  
              case   "image/gif":  
                    $fname   =   $f   .   ".gif";  
                  break;  
              case   "image/x-png":  
                    $fname   =   $dest   .   ".png";  
   
                    break;  
    default:              
       
   
   
   
   
  ?>  
  <script   language="javascript">  
  <!--  
  alert("上传拒绝,文件类型不允许,请上传*.jpg、*.png文件!")  
   
   
  history.back()  
  //  
  </script>  
  <?php  
  exit;  
  }  
   
  if(!is_uploaded_file($f['tmp_name'])){//判断文件是否是通过   HTTP   POST   上传的  
  echo   ("出错:不能正确上传.!");  
  exit;  
  }  
   
  if(!file_exists($dest_dir)){//检查$dest_dir是否存在  
  echo   ('出错:找不到"'.$dest_dir.'"不存在');  
  exit;  
  }  
  if(!is_dir($dest_dir)){//判断给定文件名是否是一个目录  
  echo   ('出错:找不到"'.$dest_dir.'"不存在');  
  exit;  
  }  
  if(file_exists($dest)){  
  echo   ('文件"'.$dest.'"已经存在');  
  exit;  
  }  
   
  //if($fname="array.gif"){  
    //echo   "lakdjflskdfj";  
    //exit;  
  //   }  
   
  $r=move_uploaded_file($f['tmp_name'],$fname);  
   
   
   
  if($r==false)  
  {  
  echo   '不能复制文件"'.$dest;  
  exit;  
  }  
   
  ?>  
  <?php  
  echo   ('你上传的文件是"'.$fname);?>  
  <?php  
   
  ?>  
   
  <br>  
  <br>  
  <br>  
  <br>  
  问题点数:0、回复次数:6Top

1 楼chinaworker(网络混混 bokele.com)回复于 2004-09-02 21:59:04 得分 0

$_FILES['file1']['type']){Top

2 楼ekingelon(顽石心)回复于 2004-09-02 23:14:13 得分 0

同意楼上的,用这种方法获取数据比较好  
  $_FILES['file1']['type'])  
  move_uploaded_file($f['tmp_name'],$fname);也换成这样!  
  Top

3 楼topflying(俊仔)回复于 2004-09-03 07:48:32 得分 0

还是不行上传一个叫200407310741111660.gif的文件他就会生成一个Array.gifTop

4 楼skystar008(疯花血月)回复于 2004-09-03 08:18:01 得分 0

可能是你的操作系统不支持这种命名格式,比如linux就不支持。包括一些以大写字母命名的文件也有支持。Top

5 楼xuzuning(唠叨)回复于 2004-09-03 08:40:31 得分 0

不光是数字文件名吧?!  
  你有  
  $f=&   $HTTP_POST_FILES['file1'];   //$f是一个数组  
  ...  
  $fname   =   $f   .   ".gif";   //这样写只会是Array.gif,因为$f是数组  
  ...  
  应写作  
  $name   =   $f['name'];  
   
  另外  
  $f=&   $HTTP_POST_FILES['file1'];  
  $dest_dir='uploads';  
  $fdt=   date('sYmdHis');  
  $dest=$dest_dir.'/'.$fdt;  
  switch($HTTP_POST_FILES['file1']['type']){  
  case   "image/pjpeg":  
                    $fname   =   $dest   .   ".jpg";  
                    break;  
              case   "image/gif":  
                    $fname   =   $f   .   ".gif";  
                  break;  
              case   "image/x-png":  
                    $fname   =   $dest   .   ".png";  
                    break;  
            default:              
  }  
  这一段,毛病不少。最后产生的文件名的格式并不统一Top

6 楼tt007((独孤求败--多情贱客无情贱))回复于 2004-09-03 08:48:08 得分 0

唠叨老大的见解就是透彻啊!!Top

相关问题

  • EXCEL2000不能保存文件,老是存为文件名为数字的临时文件
  • frontpage不能连接中文文件名?
  • 晕 Delphi 不能更改文件名吗?
  • 改文件名
  • 文件名?
  • 取文件名
  • 显示文件名
  • 修改文件名
  • 修改文件名
  • 修改文件名

关键词

  • 文件名
  • 文件
  • 数字
  • fname
  • dest
  • gif
  • uploads
  • 上传
  • 支持
  • post

得分解答快速导航

  • 帖主:topflying

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo