我已经设置了我的php视图,在名为'user'的表中选择用户上传的头像,行是'avatar':
<img src="<?=$user->avatar; ?>" class='profile'>
如果没有上传图片,我正在尝试设置默认图片的链接:
<? if(empty($avatar)) $avatar = "/uploads/default.gif"; ?>
我似乎无法让这个工作 - 任何帮助将不胜感激。非常感谢。
我已更新到下面,但它似乎默认为default.gif
<?php if(isset($avatar)): ?>
<img src="<?=$user->avatar; ?>" class='profile'>
<?php else: ?>
<img src='/uploads/default.gif'>
<div id="prompt">Upload your own avatar image</div>
<?php endif; ?>
处理图像上传 - 在用户控制器中:
public function picture() {
# Sanitize Data Entry
$_POST = DB::instance(DB_NAME)->sanitize($_POST);
# Upload Image
if ($_FILES['avatar']['error'] == 0) {
$avatar = Upload::upload($_FILES, "/uploads/avatars/", array('jpg', 'jpeg', 'gif', 'png', 'JPG', 'JPEG', 'GIF', 'PNG'), $this->user->user_id);
if($avatar == 'Invalid file type.') {
# Error
Router::redirect('/users/profile/error');
}
else {
# Upload Image
$data = Array('avatar' => $avatar);
DB::instance(DB_NAME)->update('users', $data, 'WHERE user_id = '.$this->user->user_id);
# Resize and Save Image
$imageObj = new Image($_SERVER['DOCUMENT_ROOT'].'/uploads/avatars/'.$avatar);
$imageObj->resize(150,150,'crop');
$imageObj->save_image($_SERVER['DOCUMENT_ROOT'].'/uploads/avatars/'.$avatar);
}
}
else {
# Error
Router::redirect("/users/profile/error");
}
# Send to Profile Page
Router::redirect('/users/profile');
}
答案 0 :(得分:1)
你应该准备好你的变量。
<?php
if (empty($user->avatar)){
$avatar = 'http://example.com/uploads/default.gif';
}
else{
$avatar = 'http://example.com'.$user->avatar;
}
?>
然后在你的图片中HTML:
<img src="<?php echo avatar; ?>" class='profile'>
答案 1 :(得分:0)
试试这个..
<? if(empty($user->avatar)) $user->avatar = "/uploads/default.gif"; ?>
答案 2 :(得分:0)
您的PHP代码在服务器端生成静态html。假设您的服务器名称是“site.com”,您的头像代码所在的php文件是“index.php”。如果服务器工作正常,您可以在客户端的浏览器中打开“site.com/index.php”。浏览器具有“查看页面源”功能,它显示您生成的html。
之后你必须这样做:
答案 3 :(得分:0)
试试这个:
<? if(!empty($user->avatar)) { ?>
<img src="<?=$user->avatar; ?>" class="profile">
<? } else { ?>
<img src="/uploads/default.gif" class="profile">
<!--Make sure /uploads/default.gif is correct-->
<? } ?>
请勿使用php短标记,请参阅here
请确保您的图片路径正确。
答案 4 :(得分:0)
这不会帮助您确保图像路径正确,但根据您的调用方式,我假设您使用的是ORM?无论如何,您应该能够调整任何课程$user
,以便在课堂上解决此问题。
class User {
protected $avatar; //changed to protected because now you are calling getAvatar();
....
function getAvatar() {
if(!isset($this->avatar)) {
$this->avatar = "[URL to image]";
}
return $this->avatar;
}
...
}
虽然我不确定这是个好主意,如果您想要拨打$ user-&gt; avatar,可以将它放在__construct
课程中。
class User {
public $avatar; //still public now..
function __construct() {
if(!isset($this->avatar)) {
$this->avatar = "[URL to image]";
}
return $this->avatar;
}
...
}
这样做的好处是HTML中的代码更清晰,如果您需要,可以更少地更改URL。确切地说 - 你只需要改变它一次!