Maison  >  Article  >  développement back-end  >  PHP implémente une méthode de téléchargement d'images dans la base de données et d'affichage de la sortie

PHP implémente une méthode de téléchargement d'images dans la base de données et d'affichage de la sortie

不言
不言original
2018-05-31 15:11:415856parcourir

Cet article présente principalement la méthode de téléchargement d'images dans la base de données et d'affichage du résultat en PHP. Il analyse les compétences opérationnelles associées de PHP en utilisant la forme binaire pour stocker des images et les lire et les afficher sous forme d'exemples. peut s'y référer

L'exemple de cet article décrit la méthode de téléchargement d'images dans la base de données et d'affichage de la sortie en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1 Créer un tableau de données

CREATE TABLE ccs_image (
 id int(4) unsigned NOT NULL auto_increment,
 description varchar(250) default NULL,
 bin_data longblob,
 filename varchar(50) default NULL,
 filesize varchar(50) default NULL,
 filetype varchar(50) default NULL,
 PRIMARY KEY (id)
)engine=myisam DEFAULT charset=utf8

2. télécharger des images sur le serveur La page upimage.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <style type="text/css">
    *{margin: 1%}
  </style>
  <title>Document</title>
</head>
<body>
<form method="post" action="upimage.php" enctype="multipart/form-data">
  描述:
  <input type="text" name="form_description" size="40">
  <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <br>
  上传文件到数据库:
  <input type="file" name="form_data" size="40"><br>
  <input type="submit" name="submit" value="submit">
</form>
</body>
</html>

3 PHP qui gère les téléchargements d'images upimage.php

<?php
if (isset($_POST[&#39;submit&#39;])) {
  $form_description = $_POST[&#39;form_description&#39;];
  $form_data_name = $_FILES[&#39;form_data&#39;][&#39;name&#39;];
  $form_data_size = $_FILES[&#39;form_data&#39;][&#39;size&#39;];
  $form_data_type = $_FILES[&#39;form_data&#39;][&#39;type&#39;];
  $form_data = $_FILES[&#39;form_data&#39;][&#39;tmp_name&#39;];
  $dsn = &#39;mysql:dbname=test;host=localhost&#39;;
  $pdo = new PDO($dsn, &#39;root&#39;, &#39;root&#39;);
  $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
  //echo "mysqlPicture=".$data;
  $result = $pdo->query("INSERT INTO ccs_image (description,bin_data,filename,filesize,filetype)
         VALUES (&#39;$form_description&#39;,&#39;$data&#39;,&#39;$form_data_name&#39;,&#39;$form_data_size&#39;,&#39;$form_data_type&#39;)");
  if ($result) {
    echo "图片已存储到数据库";
  } else {
    echo "请求失败,请重试";

Remarque : L'image est stockée dans la base de données sous la forme d'un blob binaire, comme ceci

4. .php qui affiche l'image

<?php
  $id =2;// $_GET[&#39;id&#39;]; 为简洁,直接将id写上了,正常应该是通过用户填入的id获取的
  $dsn=&#39;mysql:dbname=test;host=localhost&#39;;
  $pdo=new PDO($dsn,&#39;root&#39;,&#39;root&#39;);
  $query = "select bin_data,filetype from ccs_image where id=2";
  $result = $pdo->query($query);
  $result=$result->fetchAll(2);
//  var_dump($result);
  $data = $result[0][&#39;bin_data&#39;];
  $type = $result[0][&#39;filetype&#39;];
  Header( "Content-type: $type");
  echo $data;

Allez dans le navigateur pour voir les images téléchargées et voir si

peut être affiché. Il n'y a aucun problème. Prouvez que l'image a été stockée dans la base de données sous forme binaire

Recommandations associées :

Comment mettre en œuvre le téléchargement de fichiers et télécharger en PHP

Implémentation PHP Comment télécharger des images sur le serveur zimg

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn