2014-12-06 48 views
1

即时通讯使用xampp本地主机开发网站。我想添加图像使用phpmyadmin,但我不能添加它..图像可以显示在phpmyadmin,但不能出现在我的网站..是否有任何问题与我在php编码?如何使用phpmyadmin在数据库中插入图像?

$host="localhost"; // Host name 
 
$username="root"; // Mysql username 
 
$password=""; // Mysql password 
 
$db_name="MMDB"; // Database name 
 
$tbl_name="artist"; // Table name 
 

 
// Create connection 
 
$conn = mysqli_connect($host, $username, $password, $db_name); 
 
// Check connection 
 
if (!$conn) { 
 
    die("Connection failed: " . mysqli_connect_error()); 
 
} 
 
$Name=$_POST['Name']; 
 
$Hometown=$_POST['Hometown']; 
 
$Income=$_POST['Income']; 
 
$Image=$_POST['Image']; 
 
//file =$_FILES['image']['tmp_name']; 
 
$Video=$_POST['Video']; 
 
$sql = "INSERT INTO $tbl_name(Name, Hometown, Income, Image, Video) 
 
VALUES ('$Name', '$Hometown','$Income','$Image','$Video')"; 
 

 

 
if (mysqli_query($conn, $sql)) { 
 

 
    include 'admin.php'; 
 
} else { 
 
    echo "x"; 
 
} 
 

 

 
mysqli_close($conn); 
 
?>


什么在文件夹中添加图像的代码?

//其中我应该插入这个代码 “> $图像= $ _FILES [” 图像 “] [” 名称“]; $ UploadedFile的= $ _FILES [ '图像'] [ 'tmp_name的值']; 如果($图像){ $文件名=的stripslashes($ _ FILES [ '形象'] [ '名']);

  /* Ensure the file is JPG/PNG */ 
     if (($_FILES['image']['type'] != "image/jpg") && ($_FILES['image']['type'] != "image/jpeg") && ($_FILES['image']['type'] != "image/png")) { $error_status = 2; $error_message = "File uploaded was not a JPG or PNG file."; } 
     else { 
      /* Ensure the file is less than 10MB */ 
      $size = filesize($_FILES['image']['tmp_name']); 
      if ($size > (MAX_SIZE * 1024)) { $error_status = 3; $error_message = "File uploaded needs to be less than 10MB."; } 
      else { 
      $extension = "jpg"; 
      if(($_FILES['image']['type'] == "image/jpg") || ($_FILES['image']['type'] == "image/jpeg")) { $uploadedfile = $_FILES['image']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); } 
      else if (($_FILES['image']['type'] == "image/png")) { $extension = "png"; $uploadedfile = $_FILES['image']['tmp_name']; $src = imagecreatefrompng($uploadedfile); } 
      $img_mime_type = $_FILES['image']['type']; 

回答

0

在表中你不应该保存图像

你应该创建一个文件夹来保存上传的图片。在你的上传过程中,你可以复制文件夹中的图片(使用散列获取唯一的文件名),然后将文件名存储在表中。

当您想使用图片时,只需在filepath中打开图片即可。

0

你可以保存图像的路径在数据库中。

您可以将图像复制到文件夹

同时观看图像。 你可以调用图像的路径

0

请不要将图像保存在数据库中。我知道你可以使用blob,但它会给你的数据库带来很大的压力。就像我上面的2个答案一样,最好将图像保存到文件夹中,将路径保存为TEXT到数据库中。然后调用使用

1

正如其他人形象地说,你应该避免在MySQL存储图像,但如果你仍然想这样做,那么它很简单:

<?php 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="MMDB"; // Database name 
$tbl_name="artist"; // Table name 

// Create connection 
$conn = mysqli_connect($host, $username, $password, $db_name); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
//BTW: always escape your data 
$Name=mysqli_real_escape_string($conn,$_POST['Name']); 
$Hometown=mysqli_real_escape_string($conn,$_POST['Hometown']); 
$Income=mysqli_real_escape_string($conn,$_POST['Income']); 
$Image=mysqli_real_escape_string($conn,file_get_contents($_FILES['image']['tmp_name'])); 
$Video=mysqli_real_escape_string($conn,$_POST['Video']); 
$sql = "INSERT INTO $tbl_name (Name, Hometown, Income, Image, Video) 
VALUES ('$Name', '$Hometown','$Income','$Image','$Video')"; 


if (mysqli_query($conn, $sql)) { 

    include 'admin.php'; 
} else { 
    echo "x"; 
} 


mysqli_close($conn); 
?> 

根据数据的大小,您的脚本可能需要一段时间才能执行,更不用说其他人发布的警告了。

要保存到一个文件夹

我相信你发布的代码可能是将图像转换为另一种格式。这允许您存储到一个文件夹:

$savePath = "/your/path" 
if($_FILES['image']['error'] != UPLOAD_ERR_OK) { 
     $error_status = 1; 
     $error_message = "There was an error uploading the file"; 
} 
/* Ensure the file is JPG/PNG */ 
elseif (($_FILES['image']['type'] != "image/jpg") && ($_FILES['image']['type'] != "image/jpeg") && ($_FILES['image']['type'] != "image/png")) { 
    $error_status = 2; 
    $error_message = "File uploaded was not a JPG or PNG file."; 
} 
else { 
    /* Ensure the file is less than 10MB */ 
    $size = filesize($_FILES['image']['tmp_name']); 
    if ($size > (MAX_SIZE * 1024)) { 
     $error_status = 3; 
     $error_message = "File uploaded needs to be less than 10MB."; 
    } 
    else { 
     //Save the image to your specified directory 
     $error_status = 0; 
     $error_message = ''; 
     move_uploaded_file($_FILES['image']['tmp_name'], $savePath.DIRECTORY_SEPARATOR.$_FILES['image']['name']); 
    } 
} 
//now the file should be uploaded, if error status is 0, then you can safely do this: 
$Image = $savePath.DIRECTORY_SEPARATOR.$_FILES['image']['name']; 
//and put that into the database "as text" 
+0

+1为问题提供解决方案,而不仅仅是对OP的惩罚。虽然我同意图像不应该存储在数据库中,但如果我希望/必须这样做并且来找出如何,我想要一个答案 – 2017-05-01 03:55:04

相关问题