首页 > php文件上传

php文件上传

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

<html>
<body>



<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>



</body>
</html>

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

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    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 />";

    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不正常,所以出错了,谢谢;


每次看到判断文件类型用$_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";
}


如果你的程序没有返回错误信息,文件肯定是会在的,不在的情况,要么文件你自己没找到,要么文件目录没有权限

【热门文章】
【热门文章】