我要做一个图片显示,首先用后台管理程序上传图片,把图片放在根目录下的img目录下,然后把路径放到数据库,然后前台页面显示从数据库里拿路径,显示图片,我现在,不知道要怎样弄才能实现上述功能,希望各位大侠给我建议,当然有代码,更好,我是第一次做PHP网站,很多地方都不懂,希望各位大侠帮帮忙!!!

解决方案 »

  1.   

    PHP文件上传:http://www.w3school.com.cn/php/php_file_upload.asp至于显示。连接数据库。查询出来显示就行了。
      

  2.   

    请问上面的帅哥,$_FILES["file"]["tmp_name"]这个是不是就是要存到数据库里面的图片路径?
      

  3.   

    $_FILES["file"]["tmp_name"]指的是你上传的图片文件的临时文件
      

  4.   

    那个是临时文件名。你要存最终保存在服务器中的文件名。即:
    move_uploaded_file(file,newloc) 函数的newloc名字。
      

  5.   

    这个是已经上传到服务器的临时文件名,你还要把它移动到你想要的目录下面
    使用move_uploaded_file函数移动
      

  6.   

    可以帮忙解释下吗,就是newloc是什么?
      

  7.   

    有谁可以给个小例子吗?邮箱是:[email protected]
      

  8.   

    [email protected],不知道那些函数时干嘛用的,是哪里来的
      

  9.   

    你是指从哪取? mysql中取出地址。输出图片就是了。
      

  10.   

    move_uploaded_file(file,newloc),括号里面的东西,真不找到放什么,反正就是不移动到那个地方去
      

  11.   

    仅供参考:public function upLoadFile(){ $userFile = $_FILES['userfile'];
    $file_tmp = $userFile['tmp_name'];
    $file_name = $userFile['name'];
    $file_dir = "../../upLoadFile/";  //自定义存放路径
    $file_type = $userFile['type'];
    $file_error = $userFile['error'];
    $arr = explode(".",$file_name);
    $file_suffix = $arr[1]; //文件后缀
    $file_save = time(); //以文件的修改时间作为上传文件的保存名称 if (is_uploaded_file($file_tmp)) {
    if ($file_error == 0) { if ( $file_type != "image/pjpeg"){
    echo "上传的文件类型出错<br/>";
    exit;
    }
    //将接收到的文件转移到指定目录的文件夹下
    move_uploaded_file($file_tmp, $file_dir.$file_save.".".$file_suffix);
    //将数据保存到数据库
    $this->insertInfor($file_name,$file_dir,$file_save,$file_suffix); }else{
    echo "上传失败<br/>";
    } }else {
    exit;
    }//录入数据
    function insertInfor($fileName,$fileDir,$saveName,$fileSuff){
    $str = "INSERT INTO mov_load(fileName,fileDir,saveName,fileSuff) VALUE(?,?,?,?);";
    $stmt = $this->mysqli->prepare($str);
    $stmt->bind_param('ssss',$fileName,$fileDir,$saveName,$fileSuff);
    $stmt->execute();
    $rows = $stmt->affected_rows;
    if ($rows > 0){
    //echo "数据已录入库中<br/>";
    //上传成功后调至已传页面
    header("location:movieAction.class.php?showLoad=1");
    }else{
    echo "数据传输失败<br/>";
    } } //显示数据
    function showInfor(){
    $sql = "SELECT lid,fileName,fileDir,saveName,fileSuff FROM mov_load;";
    $stmt = $this->mysqli->prepare($sql);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($lid,$fileName,$fileDir,$saveName,$fileSuff);
    $rows = $stmt->affected_rows;
    if($rows > 0){
    $arrFile = array();
    while($stmt->fetch()){
    $arr = array(
    "lid" => $lid,
    "fileName" => $fileName,
    "fileDir" => $fileDir,
    "saveName" => $saveName,
    "fileSuff" => $fileSuff
    );
    array_push($arrFile,$arr);
    }
    return $arrFile;
    }else{
    echo "文件信息查询失败!<br/>";
    }

    $stmt->close();
    $this->mysqli->close(); return $lid;
    }
      

  12.   

    public function upLoadFile(){        $userFile = $_FILES['userfile'];
            $file_tmp = $userFile['tmp_name'];
            $file_name = $userFile['name'];
            $file_dir = "../../upLoadFile/";  //自定义存放路径
            $file_type = $userFile['type'];
            $file_error = $userFile['error'];
            $arr = explode(".",$file_name);
            $file_suffix = $arr[1];    //文件后缀
            $file_save = time();    //以文件的修改时间作为上传文件的保存名称        if (is_uploaded_file($file_tmp)) {
            if ($file_error == 0) {            if ( $file_type != "image/pjpeg"){
                    echo "上传的文件类型出错<br/>";
                    exit;
                }
                //将接收到的文件转移到指定目录的文件夹下
                move_uploaded_file($file_tmp, $file_dir.$file_save.".".$file_suffix);
                //将数据保存到数据库
                $this->insertInfor($file_name,$file_dir,$file_save,$file_suffix);        }else{
                echo "上传失败<br/>";
            }    }else {
            exit;
        }//录入数据
        function insertInfor($fileName,$fileDir,$saveName,$fileSuff){
            $str = "INSERT INTO mov_load(fileName,fileDir,saveName,fileSuff) VALUE(?,?,?,?);";
            $stmt = $this->mysqli->prepare($str);
            $stmt->bind_param('ssss',$fileName,$fileDir,$saveName,$fileSuff);
            $stmt->execute();
            $rows = $stmt->affected_rows;
            if ($rows > 0){
                //echo "数据已录入库中<br/>";
                //上传成功后调至已传页面
                header("location:movieAction.class.php?showLoad=1");
            }else{
                echo "数据传输失败<br/>";
            }    }    //显示数据
        function showInfor(){
            $sql = "SELECT lid,fileName,fileDir,saveName,fileSuff FROM mov_load;";
            $stmt = $this->mysqli->prepare($sql);
            $stmt->execute();
            $stmt->store_result();
            $stmt->bind_result($lid,$fileName,$fileDir,$saveName,$fileSuff);
            $rows = $stmt->affected_rows;
            if($rows > 0){
                $arrFile = array();
                while($stmt->fetch()){
                    $arr = array(
                            "lid" => $lid,
                            "fileName" => $fileName,
                            "fileDir" => $fileDir,
                            "saveName" => $saveName,
                            "fileSuff" => $fileSuff
                        );
                    array_push($arrFile,$arr);
                }
                return $arrFile;
            }else{
                echo "文件信息查询失败!<br/>";
            }
            
            $stmt->close();
            $this->mysqli->close();        return $lid;
        }
      

  13.   

    纠结,我把里面的函数打印出来,发现 $userFile['tmp_name']取不到值,这也是 不能移动图片的原因。
      

  14.   

    把你的错误显示功能打开。php.ini中令 display_errors=On  
    然后把错误信息贴出来以供分析。
      

  15.   

    我找到原因了,其实我一开始就做好了,只是IE和火狐不兼容,所以$_FILES['userfile']['error']的值一直是2
    所以取不到 缓存名称,也就无法移动文件了,谢谢各位,我马上给分,尤其是谢谢jordan102,因为我每个不知道的问题,你都帮助过我!
      

  16.   

    你可以打印机file数组看看,还有其他的很多东西。
      

  17.   


    取不到值,看下表单类型设置得对不对?应该设置成mulitphy-data啥的,同时method设置成POST.