不能上传文件名为数字的文件...如何解决...?????
下面这一些代码用来上传一个文件名为数字的.他就会在文件夹"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




