【发布时间】:2015-02-25 04:16:10
【问题描述】:
所以这是我从未经历过的奇怪现象,因为我在图片上传时有一个 HTML 表单(正是 W3 上的那个)。单击时它可以正常工作,并将用户个人资料图片推送到文件夹中,同时将文件名保存在数据库中。在上传的下方,我有一个小图片标签,可以显示上传的个人资料图片。最终目标是在会话存在时不断地在页面上显示该个人资料图片。上传后,它工作得很好,并且出现了个人资料图片。一次刷新后,找不到图像,alt="blank" 接管。该位置仍然保留在数据库中,所以我认为这不是问题。有错误吗?我需要使用 JS onload 吗?图像标签是否只工作一次?请帮助并感谢您花时间阅读本文。
PHP:
echo '<img src="'.$loaded_profile_picture.'"id="HOMEPROFILE" alt="blank" style="width:128px;height:128px">';
//$loaded_profile_picture has the value uploads/photo.jpg
类.php:
public function addProfilePicture(){
include_once "conn.php";
$sql=$dbh->prepare("UPDATE users SET UserProfilePicture=:UserProfilePicture WHERE UserName=:UserName;");
$sql->execute(array(
'UserProfilePicture'=>$this->getUserProfilePicture(),
'UserName'=>$_SESSION['UserName'],
));
}
图片上传(可能是罪魁祸首):
if($uploadsuccess&&move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_file)){
echo " The file ".basename($_FILES['fileToUpload']['name'])." has been uploaded.";
$user->setUserProfilePicture($target_file);
$user->addProfilePicture();
if($user->getUserProfilePicture()!=NULL){
echo '<img src="'.$target_file. '" alt="nom">';
}
}
编辑: 虽然许多用户都有类似的问题(即Image display with <img src=""> not working),但我尝试查看 localhost:8888/xampp/LocalPost/pages/uploads/photos.jpg 并显示得很好。我还没有运气更改了 Windows 7 上的文件权限。感谢您的辛勤工作,我会继续寻找。
编辑: 我通过使用 $_SESSION['UserProfilePicture'] 解决了这个问题,它在刷新后仍然存在。这并不能解决问题。我仍然非常希望有人能帮我找出问题所在,因为稍后我想显示其他人的个人资料图片,这显然无法使用会话变量。
【问题讨论】:
-
我假设图片存在于 uploads/photo.jpg 中?
-
没错,或者至少用户提交 photo.jpg 并且网站将其放入文件夹 uploads 中。提交后,我会在上传文件夹和数据库中永久看到图像。 uploads/photo.jpg 仍然存在的事实让我感到困惑,为什么 alt="blank" 会在刷新时出现。就像第二次忽略它一样。
-
会不会是权限问题?脚本刷新后没有读取权限
-
嗯,这可能是我从未听说过的。你知道如何解决它或任何资源来帮助理解这一点吗?谢谢
-
可以用FTP客户端查看文件的权限吗?并将其与其他权限进行比较。我不确定我是否抓住了稻草……这很奇怪!