php保存图片只能保存图片不能保存路径

2025-04-18 07:53:39
推荐回答(1个)
回答1:

据我的了解……步骤如下:

web服务器接受到你上传的图片或文件,就会扔到一个临时文件夹中

你可以用$_FILES['myfile']['tmp_name']获取你刚刚上传的文件

然后,你再用move_uploaded_file,将你上传的文件移到指定的目录中,就有了你想要的保存路径了……

具体代码如下:网上的,我没有测试

    //1.接收提交文件的用户  
    $username=$_POST['username'];  
    $fileintro=$_POST['fileintro'];  
  
    //我们这里需要使用到 $_FILES  
    /*echo "
"; 
    print_r($_FILES); 
    echo "
";*/  
  
    //其实我们在上传文件时,点击上传后,数据由http协议先发送到apache服务器那边,这里apache服务器已经将上传的文件存放到了服务器下的C:\windows\Temp目录下了。这时我们只需转存到我们需要存放的目录即可。  
  
    //php中自身对上传的文件大小存在限制默认为2M  
      
    //获取文件的大小  
    $file_size=$_FILES['myfile']['size'];  
    if($file_size>2*1024*1024) {  
        echo "文件过大,不能上传大于2M的文件";  
        exit();  
    }  
  
    $file_type=$_FILES['myfile']['type'];  
    echo $file_type;  
    if($file_type!="image/jpeg" && $file_type!='image/pjpeg') {  
        echo "文件类型只能为jpg格式";  
        exit();  
    }  
  
  
    //判断是否上传成功(是否使用post方式上传)  
    if(is_uploaded_file($_FILES['myfile']['tmp_name'])) {  
        //把文件转存到你希望的目录(不要使用copy函数)  
        $uploaded_file=$_FILES['myfile']['tmp_name'];  
  
        //我们给每个用户动态的创建一个文件夹  
        $user_path=$_SERVER['DOCUMENT_ROOT']."/studyphp/file/up/".$username;  
        //判断该用户文件夹是否已经有这个文件夹  
        if(!file_exists($user_path)) {  
            mkdir($user_path);  
        }  
  
        //$move_to_file=$user_path."/".$_FILES['myfile']['name'];  
        $file_true_name=$_FILES['myfile']['name'];  
        $move_to_file=$user_path."/".time().rand(1,1000).substr($file_true_name,strrpos($file_true_name,"."));  
        //echo "$uploaded_file   $move_to_file";  
        if(move_uploaded_file($uploaded_file,iconv("utf-8","gb2312",$move_to_file))) {  
            echo $_FILES['myfile']['name']."上传成功";  
        } else {  
            echo "上传失败";  
        }  
    } else {  
        echo "上传失败";  
    }  
  
?>