在member.php上我想要显示用户上传的个人资料图片。
//$profile_data grabs the users data within the database
<h1><?php echo $profile_data['Name']; ?>'s profile:</h1>
<?php if (empty($profile_data['profile']) === false) {
echo '<img src="',$profile_data['profile'], '" alt="',$profile_data['Name'],'\'sProfile Image">';
}
?>
<div class="profile">
<?php
if(isset($_FILES['profile']) === true) {
if (empty($_FILES['profile'] ['name']) === true) {
echo 'Please choose a file!';
}else{
$allowed = array('jpg','jpeg','gif','png');
$file_name = $_FILES['profile']['name'];
$file_extn = explode('.', $file_name);
$file_extn = strtolower(end($file_extn));//converts string to lowercase
$file_temp = $_FILES['profile']['tmp_name'];
if (in_array ($file_extn, $allowed) === true) {
//upload
change_image($MemberID,$file_temp,$file_extn);
}else {
echo 'Incorrect file type. Allowed: ';
echo implode(', ', $allowed);
}
}
}
?>
在user.php中我有这个功能:
function change_image ($MemberID, $file_temp, $file_extn) {
$file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn; //take current time, create md5 hash, 10 character figure
move_uploaded_file($file_temp, $file_path);
mysql_query("UPDATE `member` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE 'MemberID' = " . (int)$MemberID);//update database
echo "UPDATE `member` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE `MemberID` = " . (int)$MemberID;
}
当我以用户身份登录并上传图像时,没有任何反应。数据库没有更新,但当我回显查询它看起来很好,我得到:
UPDATE `member` SET `profile` = 'images/profile/2d5929413b.jpg' WHERE `MemberID` = 31
如果我将查询放入phpmyadmin它工作正常并且文件路径在那里然后用户有一个图像,但是只要他们更改图像,查询就会更新,但不会更改数据库中的文件路径。
真的很困惑,请帮忙吗?
答案 0 :(得分:0)
删除逗号并替换为如下点:
<?php if (empty($profile_data['profile']) === false) {
echo '<img src="'.$profile_data['profile']. '" alt="'.$profile_data['Name'].'\'sProfile Image">';
echo $profile_data['profile'];
}
?>
从MemberID中删除查询和逗号中的INT:
mysql_query("UPDATE `member` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE MemberID = " . $MemberID) ;//update database