0
我有一个PHP脚本来处理上传的图像。PHP图像文件上传uppecase扩展问题
它工作正常,如果我上传file.jpg文件。
但是,如果我尝试上传file.JPG,我遇到了麻烦。即使它重命名相同的文件。
代码:
if(isset($_FILES["arq"])){
@getimagesize($_FILES['arq']['tmp_name']) or $err=5;
($_FILES['arq']['error']==0) or $err=$_FILES['arq']['error'];
if ($err==0){
$dir = "./img/".$_SESSION['estudante']."/";
if (!is_dir($dir)){mkdir($dir);}
$filename = substr(md5(uniqid(rand(), true)),0,20) . ".";
$filename .= pathinfo($_FILES["arq"]["name"], PATHINFO_EXTENSION);
$fotourl = $dir . basename($filename);//$_FILES["arq"]["name"]);
move_uploaded_file($_FILES["arq"]["tmp_name"], $fotourl);
//resize e cira thumbnails
resizeimg($fotourl, 320,204); //editfoto
resizeimg($fotourl, 137,87); //album
resizeimg($fotourl, 200,0); //home
resizeimg($fotourl, 148,0); //perfil
resizeimg($fotourl, 60,60); //thumbnail
resizeimg($fotourl, 100,0); //iframe perfil
resizeimg($fotourl, 530, 530); //slide
resizeimg($fotourl, 330, 0); //i slide
//registra no BD
$sql="INSERT INTO fotos (estudante, url) VALUES ('".$_SESSION['estudante']."', '$fotourl')";
mysql_query($sql);
//retorna o id da foto
$fotoid=mysql_insert_id();
//notifica adms somente
$sql="select estudante from administradores";
$adms=mysql_query($sql);
while ($ar=mysql_fetch_assoc($adms)){
$msg="O usuário <a href=\"perfil.php?id=$_SESSION[estudante]\">".nomeapelido($_SESSION['estudante'])."</a> inseriu uma nova <a href='fotoslide.php?fotoid=$fotoid'>imagem</a>.";
$sql="insert into mensagens (msgde, msgpara, msgmsg) values (5, $ar[estudante], '$msg')"; // 5=cadastro do 'user' sistema
mysql_query($sql);
//echo "$sql\n";
}
mysql_free_result($adms);
}
}
你能解释一下'你有麻烦'吗?什么样的麻烦?错误讯息? – 2009-12-16 21:43:40
'$ _FILES ['arq'] ['error'] == 0'?真的吗?我没有小便并呻吟着让PHP上传错误变成常量,只是让人们对它们进行硬编码。 >:/ – Powerlord 2009-12-16 21:45:37
'麻烦'是它只创建一个60x60像素的小图片。所有其他尺寸不会被创建。 – 2009-12-16 22:25:56