4

我正在尝试将我的文件上传到我的服务器上的 profile/ 目录,我相信一切都可能正常工作......但是在上传时它认为我的 jpeg png 和 gif 不是正确的文件类型。为什么要这样做。这里有什么问题?我如何解决它?

function change_profile_image($user_id, $file_temp, $file_extn) {
$file_path = 'profile/' . substr (md5(time()), 0, 10) . '.' . $file_extn;
move_uploaded_file($file_temp, $file_path);
mysql_query("UPDATE `users` SET `profile` = " . mysql_real_escape_string($file_path) . "' WHERE `user_id` = " . (int)$user_id);

}

 if (isset($_FILES['profile']) === true) {
    if (empty($_FILES['profile']['name']) === true) {
       echo 'y u no choose file!';
  } else {
       $allowed = array ('jpg', 'jpeg', 'gif', 'png');
       //this is the part i think may be brocken.
       $file_name = $_FILES['profile']['name'];
       $file_extn = strtolower(end(explode (' . ', $file_name)));
       $file_temp = $_FILES['profile']['tmp_name'];

       if (in_array($file_extn, $allowed) === true) {
        change_profile_image($session_user_id, $file_temp, $file_extn);

        header('Location: dontdelete.php');
        exit();

       }else {
        echo 'y u no jpg or png or gif';       

       }
  }
 }

if (empty($user_data['profile']) === false) {
    echo '<img src"', $user_data['profile'], '" alt="">'; 
}
4

1 回答 1

3

更改explode (' . ', $file_name)explode ('.', $file_name)

您还需要检查它的有效图像,而不仅仅是以图像扩展名结尾。

=您的 img 输出中也缺少您,您也可以连接而不是回显 3 次:

echo '<img src="'.$user_data['profile'].'" alt="">';

于 2012-11-13T01:35:09.307 回答