php - 如何将上传的图片保存到数据库中

标签 php mysql upload

我需要帮助来编写这段代码来上传图片并将上传的图片保存在数据库中。

文件 1:

<?php

      <form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" >
                     
                <label>File:  
                <input name="myfile" type="file" size="30" />
                </label>
                       
                <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
                       
                     
                  <iframeid="upload_target"name="upload_target"src="#"style="width:0;height:0;border:0px solid #fff;"></iframe>
                </form>
                </div>

文件 2:

<?php




   // Edit upload location here
   $destination_path = getcwd().DIRECTORY_SEPARATOR;
   $target_path="my/";
   $result = 0;
   $name=$_FILES['myfile']['name'];
   $target_path = $target_path . basename( $_FILES['myfile']['name']);

   if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
   list($width, $height, $type, $attr) = getimagesize($target_path);
echo "Image width " .$width;
echo "<BR>";
echo "Image height " .$height;
echo "<BR>";
echo "Image type " .$type;
echo "<BR>";
echo "Attribute " .$attr;
        

      $result = 1;
   }
   
  // sleep(1);
   
   

   
$link=mysql_connect('localhost','root','');
if(!$link)
{die('you cannot connect to database...');}
$db=mysql_select_db('final');
if(!$db)die('smile');

if (isset($_FILES['myfile']) && $_FILES['myfile']['size'] > 0) {

// define the posted file into variables 
$name = $_FILES['myfile']['name']; 
$tmp_name = $_FILES['myfile']['tmp_name']; 
$type = $_FILES['myfile']['type']; 
$size = $_FILES['myfile']['size']; 

// if your server has magic quotes turned off, add slashes manually 
//if(!get_magic_quotes_gpc()){ 
//$name = addslashes($name); 
//} 

// open up the file and extract the data/content from it 
$extract = fopen($tmp_name, 'r'); 
$content = fread($extract, filesize($tmp_name)); 
$content = addslashes($content); 
fclose($extract);  

// connect to the database 


// the query that will add this to the database 
$s=mysql_query("SET NAMES 'utf8'");
$sql = "INSERT INTO `final`.`products` (`Productcode`, `Productname`, `Price`,`Descriptionofgood`, `image`) VALUES ('','','','','".$target_path."') WHERE `products`.`Productcode`='1371' ";
$results = mysql_query($sql);
if(!$result)die('not');
}

?>

最佳答案

从技术上讲,如果它是一个小项目。 您不应将图像文件存储在“数据库”中;而只是他们的链接(你甚至可能不需要那个)。图像或任何媒体文件与您的其他文件(html、css、php)一起存储在服务器上。当然,您需要将它们放在专门的文件夹中。 不存储在数据库中的原因:因为它们仅用于数据检索,更重要的是它们的尺寸更小(确实存在更大的尺寸,我说的是一个需要最少资源的小项目。将媒体文件存储在数据库中只是效率不高。

查看您的代码,我可以看出您正在尝试将文件存储在您的服务器上。

他们使用了一个非常简单的脚本来上传 here .在服务器上尝试之前先在本地主机上尝试。

关于php - 如何将上传的图片保存到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17377645/

相关文章:

php - 获取当月之前的总值(value)?

java - 使用java上传文件到服务器

node.js - 从 Multer Node 服务器访问 React 中的上传数据

javascript - XMLHttpRequest Level 2 - 确定上传是否完成

php - 无法使用与 Chartist.js 库连接的 mysql 数据库生成图表中的线条?

php - Prestashop 1.7 无法显示自定义模块

php - 在 PHP 中解析动态文本列表的最佳方法

php - Android:无法从真实网站下载大尺寸数据库到 SQLite 数据库

mysql - 可视化查询生成器

mysql - 每组前 N 行仅获得 1 行