我有一个网站,用户上传他们的个人资料图片,我已将图片存储在一个文件夹中,他们的链接反映在数据库中 如何在我必须展示照片的地方显示该链接?
上传照片的代码
define ("MAX_SIZE","1000");
function getExtension($str)
{
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;
$image=$_FILES['image']['name'];
if ($image)
{
$filename = stripslashes($_FILES['image']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png")
&& ($extension != "gif")&& ($extension != "JPG") && ($extension != "JPEG")
&& ($extension != "PNG") && ($extension != "GIF"))
{
echo '<h3>Unknown extension!</h3>';
$errors=1;
}
else
{
$size=filesize($_FILES['image']['tmp_name']);
if ($size > MAX_SIZE*1024)
{
echo '<h4>You have exceeded the size limit!</h4>';
$errors=1;
}
$image_name=time().'.'.$extension;
$newname="photo/".$image_name;
$copied = copy($_FILES['image']['tmp_name'], $newname);
if (!$copied)
{
echo '<h3>Copy unsuccessfull!</h3>';
$errors=1;
}
else echo '<h3>uploaded successfull!</h3>';
//mysql_query("insert into tutor (photo) values('".$newname."')");
$myphoto= ".$newname.";
}
插入代码
$mysqli = new mysqli("localhost", "***", "***", "***");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
/* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO `table` (`photo` ) VALUES ( ?)"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
/* Prepared statement, stage 2: bind and execute */
if (!$stmt->bind_param('s',$myphoto )) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
答案 0 :(得分:0)
您需要以某种方式将用户链接到图片,例如向您的users表添加外键,然后将当前用户ID与图片一起插入。
在您的上传/插入页面中,您最终会得到与
类似的内容// Assuming you're saving your logged in user's data in sessions
$current_user_id = $_SESSION['user_id'];
// Assuming you already have a $mysqli variable with an open connection
$mysqli->exec("INSERT INTO picture_table SET user = $current_user_id, picture = '$picture_file';");
然后,在您的个人资料/显示页面上,您必须使用类似于
的内容从数据库中获取它// Assuming you already have a $mysqli variable with an open connection
$q = $mysqli->query("SELECT picture WHERE user = $current_user_id");
$row = $q->fetch_object();
printf('<img src="http://yoursite.com/yourpath/%s" />', $row->picture);