【问题标题】:MYSQL, PHP, image upload/update failMYSQL、PHP、图片上传/更新失败
【发布时间】:2011-05-09 20:48:20
【问题描述】:

我正在尝试允许用户使用此代码更新他们的个人资料图片。

   require("../connection.php");

   $imgName = $_FILES['pic']['name']; 
   $imgTmp = $_FILES['pic']['tmp_name']; 
   $imgtype = $_FILES['pic']['type'];
   $imgSize = $_FILES['pic']['size'];

   $maxFileSize = 200000;
   $pic = "../uploads/" . $user_id . "_" . time() . $imgName;

   if ($imgSize > $maxFileSize) {
       $error = "size";
   }
   if ($imgType == "image/jpeg" || $imgType == "image/gif") {
       $error .= "";
   } else {
       $error = "type";
   }
   if (file_exists($pic)) {
       $error = "exists";
   }
   if ($error == "" && $imgName != "") {


   move_uploaded_file($imgTmp, $pic);

   mysql_query("UPDATE users SET pic = '$pic', WHERE username = '$username'");


if (!mysql_query($query, $connect)) {
die(mysql_error());
   } else {
mysql_close($connect);
header('location:http://www.WEBSITE.co.uk/users/upload-pic-thanks.php');
}
   } else {
header("Location:edit-pic-error.php?e=".$error);
}

它在地址栏中给了我这个:edit-pic-error.php?e=type,但是我要上传的文件是 .jpg,它小于 20000kb 的限额。

我的mysql数据库中的表叫'users',表行叫'pic',它的varchar,60,允许空打勾。

表格未使用新的带时间戳的个人资料图片进行更新。

请帮忙。

非常感谢

【问题讨论】:

  • 错误日志中报告或出现了哪些错误?
  • 我没有收到任何错误,它只是将我发送到错误页面标题,并将 edit-pic-error.php?e=type 放在地址栏中,这表明类型错误。但它的 .jpeg 所以应该没问题...
  • $imgType 不是 "image/jpeg" 的值是多少?
  • 我不确定。但是 $imgType 可以说明接受的内容。
  • 您不必猜测$imgType 是什么。 PHP 可以告诉你:echo $imgType

标签: php mysql image upload


【解决方案1】:

$imgtype = $_FILES['pic']['type'];

if ($imgType == "image/jpeg" || $imgType == "image/gif") {

$imgType vs. $imgtype,注意大小写。

【讨论】:

    猜你喜欢
    • 2014-10-25
    • 2014-07-22
    • 1970-01-01
    • 2015-04-12
    • 2012-01-13
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多