首页 >后端开发 >php教程 >求大神帮看下这段代码 ,上传图片成功,但是找不到图片?

求大神帮看下这段代码 ,上传图片成功,但是找不到图片?

WBOY
WBOY原创
2016-06-23 13:59:191095浏览

<!DOCTYPE html><html>        <head>                <title>Test the input</title>        </head>        <body>                <form action="upload.php" method="post" enctype="multipart/form-data">                        <label for="picture">PICTURE:</label><br />                        <input type="file" name="picture" id="picture"/><br/>                        <input type="submit" name="submit" value="submit"/>                </form>        </body></html>

<?php        $photo_dir='/var/www/images/';        if(!is_dir($photo_dir)||is_writeable($photo_dir)){                die('No dir exist or can write');        }        if($_FILES['picture']['error']>0){                echo 'Error:'.$_FILES['picture']['error'].'<br/>';        }        else{                echo "Upload:".$_FILES['picture']['name'].'<br />';                echo "Type:".$_FILES['picture']['type'].'<br />';                echo "Size:".($_FILES['picture']['size']/1024).'kb<br/>';                echo "Stred in:".$_FILES['picture']['tmp_name'].'<br />';                if(file_exists('/var/www/images/'.$_FILES['picture']['name']))                {                        echo $_FILES['picture']['name'].'already exists';                }                else                {                        $gpy=move_uploaded_file($_FILES['picture']['tmp_name'],'/var/www/images/'.$_FILES['picture']['name']);                        if(gpy)                        {                                echo 'Succed';                        }                        echo 'Stored in:'.'images/'.$_FILES['picture']['name'];                }        }?>

这段代码 竟然显示上传成功 ,但是我设置的文件路径中找不到上传的文件?


回复讨论(解决方案)

/var/www/images/ 这里没有你上传的图片?

目录权限问题,images文件夹给www-data写权限了么

仔细检查下那个路径下确实没有上传的文件吗?

另外,打开错误提示功能,看上传过程中是否有报错信息。

贴出上传后显示的内容

目录权限问题,images文件夹给www-data写权限了么
请问你指的权限是什么?我对/var/www/image 设置 对web也就是我 可读可写 这样对么?

仔细检查下那个路径下确实没有上传的文件吗?

另外,打开错误提示功能,看上传过程中是否有报错信息。
没有,错误提示功能如何打开?我刚学的php


目录权限问题,images文件夹给www-data写权限了么
请问你指的权限是什么?我对/var/www/image 设置 对web也就是我 可读可写 这样对么?

你的 images 目录没有普通用户写权限
你可查看提交后的页面内容,肯定是没有 Succed 字样的



目录权限问题,images文件夹给www-data写权限了么
请问你指的权限是什么?我对/var/www/image 设置 对web也就是我 可读可写 这样对么?

web是你自己创建的用户,apache的用户名是www-data

你的 images 目录没有普通用户写权限
你可查看提交后的页面内容,肯定是没有 Succed 字样的
提交文件后显示这样,确实是成功....

普通用户可写?这个要怎么改?




目录权限问题,images文件夹给www-data写权限了么
请问你指的权限是什么?我对/var/www/image 设置 对web也就是我 可读可写 这样对么?

web是你自己创建的用户,apache的用户名是www-data
apache 用户可以修改么? 我是自己用ubantu linux搭建的环境,代码也在本地运行

if(gpy)  
明显错了。
应该是if( $gpy)
所以你的判断错了,进入if内部也是正常的。
打开php的所有提示。应该是images没有写入权限。

if(gpy)  
明显错了。
应该是if( $gpy)
所以你的判断错了,进入if内部也是正常的。
打开php的所有提示。应该是images没有写入权限。

现在我把权限修改了 ,文件路径开始报错了?文件路径应该怎么写?





目录权限问题,images文件夹给www-data写权限了么
请问你指的权限是什么?我对/var/www/image 设置 对web也就是我 可读可写 这样对么?

web是你自己创建的用户,apache的用户名是www-data
apache 用户可以修改么? 我是自己用ubantu linux搭建的环境,代码也在本地运行
不可以,为什么要改呢,你给images目录附www-data写权限不就完了吗

错误提示贴出来。
另外,又瞥了一眼你的代码:
 if(!is_dir($photo_dir)||is_writeable($photo_dir))
这个是逻辑错误吧。
应该是 if(!is_dir($photo_dir)|| !is_writeable($photo_dir))

错误提示贴出来。
另外,又瞥了一眼你的代码:
 if(!is_dir($photo_dir)||is_writeable($photo_dir))
这个是逻辑错误吧。
应该是 if(!is_dir($photo_dir)|| !is_writeable($photo_dir))
哈哈,太马虎了,但是我把前面的if判断全部删去,希望通过$_FILES['picture']['error']提示错误信息,但依然是0,也就是不存在可写入问题






目录权限问题,images文件夹给www-data写权限了么
请问你指的权限是什么?我对/var/www/image 设置 对web也就是我 可读可写 这样对么?

web是你自己创建的用户,apache的用户名是www-data
apache 用户可以修改么? 我是自己用ubantu linux搭建的环境,代码也在本地运行
不可以,为什么要改呢,你给images目录附www-data写权限不就完了吗
点错了,弄成丢砖了。。。  但是用$_FILES['name']['error']应该是能提示错误是否由都写引起,但是这个提示依然是0,也就是成功,这是怎么回事


错误提示贴出来。
另外,又瞥了一眼你的代码:
 if(!is_dir($photo_dir)||is_writeable($photo_dir))
这个是逻辑错误吧。
应该是 if(!is_dir($photo_dir)|| !is_writeable($photo_dir))
哈哈,太马虎了,但是我把前面的if判断全部删去,希望通过$_FILES['picture']['error']提示错误信息,但依然是0,也就是不存在可写入问题
$_FILES['picture']['error']给出的是上传时的错误,现在你的问题是上传成功,move_uploaded_file的过程失败。

        $photo_dir='images/';
        if(!file_exists($photo_dir))
        {
                mkdir($photo_dir);
        }

        if($_FILES['picture']['error']>0){
                echo 'Error:'.$_FILES['picture']['error'].'
';
        }
        else{
                echo "Upload:".$_FILES['picture']['name'].'
';
                echo "Type:".$_FILES['picture']['type'].'
';
                echo "Size:".($_FILES['picture']['size']/1024).'kb
';
                echo "Stred in:".$_FILES['picture']['tmp_name'].'
';
                echo "Error:".$_FILES['picture']['error'].'
';
                if(file_exists('/var/www/images/'.$_FILES['picture']['name']))
                {
                        echo $_FILES['picture']['name'].'already exists';
                }
                else
                {
                        $gpy=move_uploaded_file($_FILES['picture']['tmp_name'],$photo_dir.$_FILES['picture']['name']);
                        if($gpy)
                        {
                                echo 'Succed'.'
';
                        }
                        echo 'Stored in:'.'/var/www/images/'.$_FILES['picture']['name'];
                        echo '求大神帮看下这段代码 ,上传图片成功,但是找不到图片?';
                }
        }

?>



错误提示贴出来。
另外,又瞥了一眼你的代码:
 if(!is_dir($photo_dir)||is_writeable($photo_dir))
这个是逻辑错误吧。
应该是 if(!is_dir($photo_dir)|| !is_writeable($photo_dir))
哈哈,太马虎了,但是我把前面的if判断全部删去,希望通过$_FILES['picture']['error']提示错误信息,但依然是0,也就是不存在可写入问题
$_FILES['picture']['error']给出的是上传时的错误,现在你的问题是上传成功,move_uploaded_file的过程失败。

终于搞定了,
  if(!file_exists($photo_dir))
        {
                mkdir($photo_dir);
        }
是参考别人的代码 ,添加了这行代码,可是很奇怪,并没有新建images文件,以前上传的文件也突然显示出来了。。。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn