我想实现的就是一个简单的php文件上传,我把php.ini针对的各项配置好了,最后要上传的文件所在目录upload也设置777权限了,可还是提示文件无效“Invalid file”前台:
前台:
<html>
<head>
<title>
upload_test
</title>
</head>
<body>
<form action="upload_file.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>
后台:
<?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)."<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";
}
?>
前台:
<html>
<head>
<title>
upload_test
</title>
</head>
<body>
<form action="upload_file.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>
后台:
<?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)."<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";
}
?>
不好意思,刚接触php,见笑了,能解释得详细点嘛,是不是我上传的文件的名称有要求还是,这个代码不是我自己写的,我是从w3school copy过来的,谢谢 !
echo你的$_FILES["file"]["type"]
$_FILES["file"]["size"] <20000 是判断不出 你上传文件的大小 $_FILES["file"]["type"] 是判断文件类型
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)."<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"];
}
}
?>
解决了,是size的值太小,晕倒,这php默认的值是多少啊,不是字节吗?
不过我们上传的是视频,这样的话,由于我们在php.ini里面没有设置好上传限制的大小,而是使用了默认的2M和8M,所以导致一直上传失败,所以你可以找找这样的原因。