如果上传的图片超过1mb,我需要知道如何使用此代码来减少/压缩正在上传的图片的大小。
<form enctype="multipart/form-data" action='upcomg.php' method="post" name="changer">
<input name="MAX_FILE_SIZE" value="83886080" type="hidden">
<label>Please choose a file:</label><input name="image" accept="image/jpeg" type="file">
<input value="Submit" type="submit">
<?php
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
$tmpName = $_FILES['image']['tmp_name'];
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
$query = "INSERT INTO ### ";
$query .= "(##) VALUES ('$data')";
$results = mysql_query($query, $link);
// Print results
print "Thank you, your file has been uploaded.";
}
else {
print "No image selected/uploaded";
}
// Close our MySQL Link
mysql_close($link);
?>
答案 0 :(得分:1)
首先,我不会将原始图像数据存储在数据库中。将它存储在常规的旧静态文件中会更快,如果您的数据库脱机也不会中断。
但话虽如此,你可以在那里放一些这样的东西:
$file = $_FILES['image']['tmp_name'];
if ( $_FILES['image']['size'] > 1024*1024 )
$file = compress($file);
你有压缩方法吗?如果没有,我也可以帮助你,但你可能想看看Imagick,因为它已经内置压缩。