我使用一个非常简单的脚本将图片上传到数据库。
<?php
if(isset($_POST['upload'])){
$name = $_POST['name'];
$album_id = $_POST['album'];
$file = $_FILES['file']['name'];
$file_type = $_FILES['file']['type'];
$file_size = $_FILES['file']['size'];
$file_tmp = $_FILES['file']['tmp_name'];
$random_name = rand();
if(empty($file)){
?>
MUST BE JPG
<?php } else {
move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg');
mysql_query("INSERT INTO photos VALUES('', '$name', '$album_id', '$random_name.jpg')");
?>
UPLOADED
<?php
}
}
?>
<input type="file" name="file" id="imgInp" /><br /><br />
<input type="submit" name="upload" value="Upload" />
我正在寻找一种在上传图片时调整图片大小的方法。我不太确定我想要的宽度,但运行这样的代码最简单/最好的方法是什么?我一直在
答案 0 :(得分:2)
如果您运行的是PHP 5.3或更高版本,则可以使用内置的image magick。
使用move_uploaded_file上面的以下代码,它会将其大小调整为400宽度和自动高度。
$image = new Imagick($file_tmp);
$image->thumbnailImage(400, 0);
$image->writeImage($newPath);
第一行创建了一个类Imagick的实例,并传入你的文件。
第二行创建缩略图,您可以将两个数字更改为您喜欢的任何数字。
0表示自动,因此通过将第一个参数设置为400,将第二个参数设置为0,这将保持图像的宽高比。
然后最后一行将缩略图写入您选择的目录。