使用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";
}
如果你的程序没有返回错误信息,文件肯定是会在的,不在的情况,要么文件你自己没找到,要么文件目录没有权限