0
我有一個PHP腳本我正在使用將上傳的圖像轉換成一半的質量,所以我可以節省服務器空間,但它不工作我是新來的PHP,所以希望有人可以幫助我在哪裏出錯。php png圖像質量50%
if(isset($_FILES['t1']['name'])){
$file = rand(0, 10000000).$_FILES['t1']['name'];
if (move_uploaded_file($_FILES['t1']['tmp_name'], $file)) {
if($fp = fopen($file,"rb", 0))
{
$picture = fread($fp,filesize($file));
fclose($fp);
$img = imagecreatefrompng($file);
imagepng($img, $file, 6); //6 quality setting
imagedestroy($img);
$tag1 = '<img src="'.$file.'" alt="" class="default" />';
//unlink($file);
echo "<script>$(document).ready(function() {var write = $('.item:nth-child(1)').html();localStorage.item1Pantry = write;});</script>";
}
}
}
+1對於安全警告! –
有沒有辦法強制用戶上傳png文件? – Blynn
@Blynn,不,你可以做的只是稍後檢測文件類型服務器端(通過實際檢查文件數據,而不僅僅是查看擴展名!)。即使如此,過去在圖像庫中也存在已知的漏洞。在網絡文檔根目錄之外,按順序編號命名您的文件或不帶文件擴展名的文件。用一個從數據庫獲取文件數據的PHP腳本來爲它們服務。然後,您甚至可以使用建議的文件名與用戶最初擁有的內容一起返回它們,同時防止服務器端執行。 – Brad