Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用mysql链接上传图片代码_Php_Mysql_Upload_Image Uploading - Fatal编程技术网

Php 用mysql链接上传图片代码

Php 用mysql链接上传图片代码,php,mysql,upload,image-uploading,Php,Mysql,Upload,Image Uploading,我正在制作一些类似个人资料的图片。我做了一个表单上传图片和上传文件的代码都成功了,但我只需要一个方法将上传链接到mysql。或者以任何方式使上传的图片成为个人资料图片 这就是我所做的代码: 选择图片(上传_form.php) 文件名: 并上传_file.php <?php $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extensi

我正在制作一些类似个人资料的图片。我做了一个表单上传图片和上传文件的代码都成功了,但我只需要一个方法将上传链接到mysql。或者以任何方式使上传的图片成为个人资料图片

这就是我所做的代码:

选择图片(上传_form.php)


文件名:

并上传_file.php

 <?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 1048576)
&& in_array($extension, $allowedExts)) {
  if ($_FILES["file"]["error"] > 0) {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
  } else {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
    if (file_exists("upload/" . $_FILES["file"]["name"])) {
      echo $_FILES["file"]["name"] . " already exists. ";
    } else {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
    }
  }
} else {
  echo "Invalid file";
}
?>

这些代码成功地上传了图片。所以我的下一步是如何制作个人资料图片


thanx Prevance

这不是一个完整的解决方案,不包含任何代码

但它可能会让你知道在高层次上你实际上需要做些什么

假设

  • 您正在以个人资料图片的形式上载。所以,您已经有了users表和代码来创建新用户
  • 用户将登录到他们的帐户并上传图片
  • 数据库-用户表

  • 在用户表中有一个名为picture的列。可以为空。我们将为每个用户在该字段中存储上传图片的文件名。这是一根绳子
  • 上传-处理

  • 你已经在上传图片了。现在为上传的文件名指定一个唯一的名称,而不是用户上传图片时使用的名称

    • 因为,用户1和用户2都可能上载一个名为pic.jpg的文件,而上载的文件夹中只有一个pic.jpg
    • 在用户表中,每个用户应该有一些唯一的字段。可能是电子邮件或用户名。因此,最好对username+time进行md5哈希,并将其用作文件名
    • 不要使用用户id作为文件名。尽管它可以帮助您快速获取工作代码,但一些具有简单脚本的主体可以获取用户的所有图片
  • 在静态文件夹中创建一个名为“upload”或类似名称的文件夹,并将用户的图片上载到该文件夹

  • 成功上传图片后,将文件名存储在用户表中上面添加的“pciture”列下

  • 显示个人资料图片

  • 您肯定希望显示带有用户名的配置文件图片
  • 因此,在获取用户详细信息的同时,还要从数据库中获取图片名称,并使用正确的路径显示
  • 下一步是什么

  • 用户可以上传一张大图作为他们的个人资料图片。因此,对于大小为100px X 120px的配置文件图片,显示500万像素的图像不是一个好主意。所以,在上传时,最好重新调整大小、裁剪并存储,这样可以节省最终用户的带宽
  • 还要确保保留用户的原始图像。可能是您需要用户的图片在不同的大小在以后的时间,而添加新的功能到您的网站
  • 确保当用户删除其帐户时,也删除其原始图片。:)
  • 您可以使用gd2或ImageMagick进行此操作

  • 希望这能让您了解下一步需要做什么。

    根据当前的假设,只有管理员用户希望最多有两名管理员,只有这两名管理员拥有自己的帐户,是的,他们必须登录并上传图片。从数据库:我有一个admin表,其中包含ID、AdminName、e.mail和password列(以及用于登录的列)上传-过程:1和2 yes true。我问这个问题是想知道在第三步和下一步我应该做什么。现在我想知道如何将上传与数据库和路径链接起来。谢谢你的帮助
     <?php
    $allowedExts = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);
    
    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/jpg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/x-png")
    || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 1048576)
    && in_array($extension, $allowedExts)) {
      if ($_FILES["file"]["error"] > 0) {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
      } else {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
        if (file_exists("upload/" . $_FILES["file"]["name"])) {
          echo $_FILES["file"]["name"] . " already exists. ";
        } else {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "upload/" . $_FILES["file"]["name"]);
          echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
        }
      }
    } else {
      echo "Invalid file";
    }
    ?>