PHP China | 中国开源之路 's Archiver

zhuayi 发表于 2008-11-19 16:37

上传图片问题

只要是中文名称的图片  就出错

出错代码 [php][b]Warning[/b]: move_uploaded_file(../../../08-11-19/20081119083406_无标题-1.jpg) [[url=http://127.0.0.1:8080/auto/lib/upload/function.move-uploaded-file][color=#0000ff]function.move-uploaded-file[/color][/url]]: failed to open stream: Invalid argument in [b]D:\zhuayi\AppServ\www\auto\lib\upload\admin_upfile.php[/b] on line [b]59[/b]
[/php]

上传代码
[php]
$uppath=isset($_REQUEST["upPath"])?$_REQUEST["upPath"]:"/uploadfile/";             //文件上传路径
$formName=isset($_REQUEST["formName"])?$_REQUEST["formName"]:"form";         //回传到上页面编辑框所在Form的Name
$editName=isset($_REQUEST["editName"])?$_REQUEST["editName"]:"pic";             //回传到上页面编辑框的Name
//转换根目录的路径
if(strpos($uppath,"/")==0) {
     $i=0;
     $thpath=$_SERVER["SCRIPT_NAME"];
     $thpath=substr($thpath,1,strlen($thpath));
     while(strripos($thpath,"/")!==false){
         $thpath=substr($thpath,strpos($thpath,"/")+1,strlen($thpath));
         $i=++$i;        
     }
$pp="";
     for($j=0;$j<$i;++$j){
         $pp .="../";
     }
     //$uppaths=$pp.substr($uppath,1,strlen($thpath));
  $uppaths=$pp.$uppath;
}
$filename=date("y-m-d");
//echo $uppaths.$filename;
if(is_dir($uppaths.$filename)!=TRUE) mkdir($uppaths.$filename,0777);
// if(is_dir($filename."/".$ctime)!=TRUE) mkdir($filename."/".$ctime,0777);
$f = $_FILES['file1'];
if($f["type"]!="image/gif" && $f["type"]!="image/pjpeg"   && $f["type"]!="image/jpeg" && $f["type"]!="image/x-png" )
     {
         echo "只能上传图片格式的文件 [ <a href=JavaScript:history.go(-1) >重新上传</a> ]";
         //echo $f['type'];
          return false;
     }
if($f['size']> 1000*100 )
     {
         echo "图片超过大小限制 [ <a href=JavaScript:history.go(-1) >重新上传</a> ]";
         //echo $f['type'];
          return false;
     }
$dest = $uppaths.$filename."/".date("YmdHis",time())."_".$f['name'];//设置文件名为日期加上文件名避免重复 上传目录
$dest1 = $uppath.$filename."/".date("YmdHis",time())."_".$f['name'];//设置文件名为日期加上文件名避免重复
if (!move_uploaded_file($f['tmp_name'],$dest))
{
     echo "上传失败 [ <a href=JavaScript:history.go(-1) >重新上传</a> ]";
}
else
{
  echo   "<script>window.parent.document.".$formName.".".$editName.".value='".$dest1."'</script>";
  echo  "文件上传成功,重新上传 [ <a href=JavaScript:history.go(-1) >继续上传</a> ]";
  //echo strrchr($dest,'/');
}
[/php]

银子 发表于 2008-11-19 17:37

重命名你的上传文件

syb328 发表于 2008-11-19 18:09

重命名,在php的程序中尽量不要出现中文的文件或文件夹,否则后果自负

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.