按照网上的例子写的php code应该是没什么问题的:<form enctype="multipart/form-data"action="demo2.php"method="post">
<input type="hidden" name="MAX_FILE_SIZE"value="1000000"/>
file upload: <input type="file" name="userfile"/>
<input type="submit" value="上传"/>
</form>
<?php
//接受上传文件
//$_FILES
print_r($_FILES);

if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
//echo'upload file, found,wait for the moving';
move_uploaded_file($_FILES['userfile']['tmp_name'],'uploads/'.$_FILES['userfile']['name']);
}else{
echo'cannot find file';
}?>输出是
Array ( [userfile] => Array ( [name] => 未命名.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpdruvC1 [error] => 0 [size] => 1059 ) ) Warning: move_uploaded_file(uploads/未命名.jpg): failed to open stream: Permission denied in /disks/diskh/zco/maql2/public_html/test/test/demo2.php on line 8 Call Stack: 0.0001 329800 1. {main}() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:0 0.0001 329888 2. move_uploaded_file() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:8 Warning: move_uploaded_file(): Unable to move '/tmp/phpdruvC1' to 'uploads/未命名.jpg' in /disks/diskh/zco/maql2/public_html/test/test/demo2.php on line 8 Call Stack: 0.0001 329800 1. {main}() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:0 0.0001 329888 2. move_uploaded_file() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:8 很明显是move_uploaded_file移动不了图片,无法打开流?因为学校是用WinSCP,所以都是把文件放在学校的服务器里面
我觉得这是没法上传的原因,有人知道如何解决吗

解决方案 »

  1.   

    /disks/diskh/zco/maql2/public_html/test/test/uploads 目录不存在或不可写
    文件系统不支持中文名
      

  2.   


    我换了个英文名的图片test1,还是不行
    Array ( [userfile] => Array ( [name] => test1.jpg [type] => image/pjpeg [tmp_name] => /tmp/phplUbsjx [error] => 0 [size] => 1059 ) ) Warning: move_uploaded_file(uploads/test1.jpg): failed to open stream: Permission denied in /disks/diskh/zco/maql2/public_html/test/test/demo2.php on line 8 Call Stack: 0.0001 329804 1. {main}() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:0 0.0002 329888 2. move_uploaded_file() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:8 Warning: move_uploaded_file(): Unable to move '/tmp/phplUbsjx' to 'uploads/test1.jpg' in /disks/diskh/zco/maql2/public_html/test/test/demo2.php on line 8 Call Stack: 0.0001 329804 1. {main}() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:0 0.0002 329888 2. move_uploaded_file() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:8 
      

  3.   

    Permission denied in 没有访问权限 或者写入权限 甚至可能不存在你访问的位置
      

  4.   

    Warning: move_uploaded_file(uploads/test1.jpg): failed to open stream: 
    重点检查路径问题,确定可写及存在,,,此函数不会帮你创建目录如果文件被包含执行的,,,建议你用绝对路径
      

  5.   

    既然上传过来有图片信息,那就是这块你处理的有问题了,第一,需要确认所有目录是否存在,move_uploaded_file(),不能创建目录,第二,查看一下你上传的路径是否正确 ,第三,查看一下你的文件权限是否足够。再者他们是不是同一台服务器,等之类的问题。
      

  6.   

    绝对路径的话就是  
    move_uploaded_file($_FILES['userfile']['tmp_name'],$_FILES['userfile']['name']);这样吧,输出为Array ( [userfile] => Array ( [name] => test1.jpg [type] => image/pjpeg [tmp_name] => /tmp/php5KZJ8A [error] => 0 [size] => 1059 ) ) Warning: move_uploaded_file(test1.jpg): failed to open stream: Permission denied in /disks/diskh/zco/maql2/public_html/test/test/demo2.php on line 8 Call Stack: 0.0002 329708 1. {main}() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:0 0.0002 329736 2. move_uploaded_file() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:8 Warning: move_uploaded_file(): Unable to move '/tmp/php5KZJ8A' to 'test1.jpg' in /disks/diskh/zco/maql2/public_html/test/test/demo2.php on line 8 Call Stack: 0.0002 329708 1. {main}() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:0 0.0002 329736 2. move_uploaded_file() /disks/diskh/zco/maql2/public_html/test/test/demo2.php:8 可能还是权限的问题?
      

  7.   

    <?php
     
        $folder=$_SERVER["DOCUMENT_ROOT"]."/uploads/";//前提是你的站点根目录下必须有uploads文件夹哦
        chmod($folder,0777);
        
        if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
           
            move_uploaded_file($_FILES['userfile']['tmp_name'],$folder.$_FILES['userfile']['name']);
        }else{
            echo'cannot find file';
        }?>
      

  8.   

    恩,我有在相同目录下建了uploads文件夹,可以看我回复楼上的,我用了绝对路径,可是还是不行
      

  9.   

    你还是开启error_reporting(E_ALL)试试吧