【发布时间】:2010-02-27 20:45:25
【问题描述】:
我在 apache localhost 中运行了代码,并在我的主机中进行了尝试。在他们两个中,该方法移动了文件,但文件似乎为 0kb。
代码如下:
if(isset($_POST['upload'])){
if($_FILES['profile_foto']['size']>0&&$_FILES['profile_foto']['size']<102400){
$image_extension=explode("/",$_FILES['profile_foto']['type']);
if($image_extension[1]!="jpeg")
echo "<script type='text/javascript'>alert('The extension of the profile image must be jpeg!!!')</script>";
else{
if($_POST['image_id']==""){
$image_id= md5(uniqid());
$_FILES['profile_foto']['name']="tempo/".$image_id.".jpg";
move_uploaded_file($_FILES['profile_foto']['temp_name'],$_FILES['profile_foto']['name']);
list($width,$height)=getimagesize("tempo/".$image_id.".jpg");
if($width<=0||$width>170||$height<=0||$height>200){
$myFile="tempo/".$image_id.".jpg";
$fh=fopen($myFile,'w') or die("The File could not be opened!!!");
fclose($fh);
unlink($myFile);
echo "<script type='text/javascript'>alert('The width of your profile image must be less than 170 px, the height must be less than 200 px!!!')</script>";
}
else
$_POST['image_id']=$fotograf_id;
}
else{
$image_id= md5(uniqid());
$_FILES['profile_foto']['name']="tempo/".$image_id.".jpg";
move_uploaded_file($_FILES['profile_foto']['temp_name'],$_FILES['profile_foto']['name']);
list($width,$height)=getimagesize("tempo/".$image_id.".jpg");
if($width<=0||$width>170||$height<=0||$height>200){
$myFile="tempo/".$image_id.".jpg";
$fh=fopen($myFile,'w') or die("The File could not be opened!!!");
fclose($fh);
unlink($myFile);
echo "<script type='text/javascript'>alert('The width of your profile image must be less than 170 px, the height must be less than 200 px!!!')</script>";
}
else{
$image_will_be_deleted=$_POST['image_id'];
$myFile="tempo/".$image_will_be_deleted.".jpg";
$fh=fopen($myFile,'w') or die("The File cannot be opened!!!");
fclose($fh);
unlink($myFile);
$_POST['image_id']=$image_id;
}
}
}
}
else
echo "<script type='text/javascript'>alert('The size of the profile image must be less than 100 kb!!!')</script>";
}
【问题讨论】:
-
请指定代码运行的环境、操作系统、托管或VPS等
-
@Türker 不要重新标记您的问题,而是显示一些代码!欢迎来到 SO。
-
如果没有代码我可能会在夜间拍摄,但请确保您要移动的文件存在,if ($_FILES["file"]["error"] > 0) { echo "错误: ” 。 $_FILES["file"]["error"] 。 "
"; } -
您在特定条件下创建空文件。我怀疑您看到的是其中一个,而不是实际上传的图像。那些空文件有什么用?
-
我检查了 FILE 数组是否不为空并且文件上传没有错误。将文件上传到 FILE 数组没有问题,但是当我尝试使用 move_uploded_file() 时,它会将文件移动到我想要的位置并使用我想要的名称,但它的大小似乎为 0 kb。
标签: php upload file-upload filesystems