所以我需要一个非常简单的脚本来调整图像大小并在PHP中上传缩略图。请不要推荐图书馆,因为我宁愿能够轻松地编辑和学习图书馆。
我自己编写了一个小的PHP脚本来上传一个图像,并在数据库中将其命名为ID,并打算将拇指简单地添加到名称末尾的“拇指”(例如123thumb)。 jpg),但我有点想破坏它试图用缩略图工作。
这有点像:
mysql_query('
INSERT INTO art (
artist,
title,
extension)
VALUES (
1,
"Penguins",
"'.end(explode('.',$_FILES['art']['name'])).'")') ;
move_uploaded_file($_FILES['art']['tmp_name'],'images/'.mysql_insert_id()..end(explode('.',$_FILES['art']['name']))
答案 0 :(得分:0)
糟糕的糟糕设计。 1.没有错误检查查询并在查询中使用原始用户提供的数据,导致sql注入漏洞。 2.使用原始用户提供的文件名来存储文件,即使它具有前置数据库ID。 3.盲目地假设插入查询有效,这样msyql_insert_id可能不会返回任何内容。 3.盲目地假设移动命令有效。
更好/更安全的方法是:
if ($_FILES['art']['error'] !== UPLOAD_ERR_OK) {
die("Upload failed with error code " . $_FILES['art']['error']);
}
$filename = mysql_real_escape_string(basename($_FILES['art']['name']));
mysql_query("INSERT .... VALUES (1, 'Penguins', '$filename', ...)") or die(mysql_error());
move_uploaded_files(...) or die("Failed to move file");
可以做更多/更好的验证/错误处理,但这是比你的版本更安全/更可靠的东西的骨架。
答案 1 :(得分:0)
除了脚本的所有潜在漏洞(请参阅其他答案)之外,此页面可能对教您如何调整图像大小以获取缩略图非常有帮助。您将不得不使用像GD(内置于PHP)这样的库来调整图像大小。
http://salman-w.blogspot.com/2008/10/resize-images-using-phpgd-library.html
(在另一个SO问题中找到它。)
编辑:当然,不要忘记PHP手册。 http://php.net/manual/en/book.image.php