php文件上传

 echo7111436 发布于 2022-11-23 11:02

使用http://www.w3school.com.cn/php/php_file_upload.asp方案
客户端上传页面文件为 -rw-r--r-- 1 root root 244 Jul 16 15:59 test.html







-rw-r--r-- 1 root root 1106 Jul 16 15:54 upload.php 为上传接口

 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "
"; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Type: " . $_FILES["file"]["type"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>

drwxrwxr-x 2 root root 4096 Jul 16 15:54 upload为存储目录

可是服务器上文件不存在

目录存在,且应该有权限应该正确
下面是目录结构
-rw-r--r-- 1 root root 244 Jul 16 15:59 test.html
drwxrwxr-x 2 root root 4096 Jul 16 15:54 upload
-rw-r--r-- 1 root root 1106 Jul 16 15:54 upload.php


结算,问题出在upload这个目录的所有者身上

*************新的问题***************
在电脑中上传OK的,可是到手机APP就上传失败了,求解
准确的说是用手机流量上传就失败,用wifi连接上传就成功
*************新的结算***************
没有问题,是因为在公司我自己配置了dns,所以wifi没有问题,但是手机流量dns不正常,所以出错了,谢谢;

2 个回答
  • 每次看到判断文件类型用$_FILES["type"] 来判断的人都应该拖出去斩了!!!!!!!!!!!应该用getimagesize($_FILES["tmp_name"]) 来获取当前上传的图片类型啊

    还有,move_upload_file 之前,请用一下函数“is_uploaded_file($_FILES["tmp_name"])” 好么?

    好了,给具体代码把

    $allow_type = array(
        "image/gif", "image/jpeg", "image/jpg", "image/pjpeg",
    );
    
    $image_info = getimagesize($_FILES["file"]["tmp_name"]);
    if(in_array($image_info["mime"], $allow_type) && $_FILES["file"]["size"] < 20000){
        if ($_FILES["file"]["error"] > 0){
            echo "Return Code: " . $_FILES["file"]["error"] . "\r\n";
            exit();
        }
    
        //开始上传了
        if(is_uploaded_file($_FILES["file"]["tmp_name"])){
            if(move_uploaded_file($_FILES["file"]["tmp_name"], "./upload/". $_FILES["file"]["name"])){
                echo "Upload: " . $_FILES["file"]["name"] . "<br />";
                echo "Type: " . $_FILES["file"]["type"] . "<br />";
                echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
                echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
                exit();
            }else{
                //上传出问题了
            }
        }else{
            //因为不是post  upload过来的file 所以我们不接受
        }
    }else{
        echo "Invalid file";
    }
    
    
    2022-11-23 12:27 回答
  • 如果你的程序没有返回错误信息,文件肯定是会在的,不在的情况,要么文件你自己没找到,要么文件目录没有权限

    2022-11-23 12:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有