【发布时间】:2014-08-29 07:41:49
【问题描述】:
我有一段代码可以将配置文件图像存储在地图“images/profiles”中,并将 URL 存储在数据库中。我想将上传的个人资料图片的名称定义为用户的 $ID。我该怎么做?
include("../../core/init.inc.php");
$target = "../images/profiles/";
$target = $target . basename($_FILES['photo']['name']);
$pic = $_FILES['photo']['name'];
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) {
echo "The file ". basename($_FILES['photo']['name']). " has been uploaded";
} else {
echo "ERROR";
}
mysql_query("UPDATE users SET image_url='includes/images/profiles/$pic' WHERE username = '".mysql_real_escape_string($_SESSION['username'])."'");
现在,当有人上传他的个人资料图片(我们称之为 pf1.png)时,它会将其保存为“pf1.png”。我希望它像“$ID.png”一样保存(.png 是一个随机扩展名)。我想为 move_upload_file 函数和正确更新 'image_url' 数据库列完成此操作。
【问题讨论】:
-
你为什么不逃避 $pic。他们不能上传 DROP DATABASE.png
-
你有
$target- 这就是你必须改变的。请注意,您很容易受到sql injection attacks 的攻击并使用过时/弃用的数据库接口。
标签: php mysql file-upload path user-profile