2016-10-09 1 views
0

PHP-newbie iciPHP - télécharger des photos

J'essaie de créer un script simple pour télécharger une photo dans ma base de données. Je sais que ce n'est pas très efficace, mais je veux le faire quand même.

J'ai donc ces deux fichiers .php:

<html> 
<body> 
    <form action="upload.php"> 
     <input type="file" name="photo"> 
     <input type="submit" name="submit" value="Submit" /> 
    </form> 
</body> 

et

<?php 

error_reporting(error_reporting() & ~E_NOTICE); 

$conn = mysqli_connect("localhost", "root", "", "poze"); 

if(!$conn){ 
    die("Connection failed: ".mysqli_connect_error()); 
} 
else echo "Succes"; 

$imageName = mysql_real_escape_string($_FILES["image"]["name"]); 
//$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])); 
//$imageType = mysql_real_escape_string($_FILES["image"]["type"]); 

if($imageName==NULL){ 
    echo "Null"; 
} 
else{ 
    echo "The photo is okay!"; 
} 

Après avoir téléchargé tout type d'image, il fait écho comme vide.

Pourrait, quelqu'un m'explique pourquoi? Et comment pourrais-je le résoudre?

+0

C'est becaus e votre formulaire est absent 'enctype =" multipart/form-data "' et 'method =" post "'. –

+0

Euh, non, ça n'a pas marché: -? –

+0

Avez-vous inclus les deux attributs que j'ai mentionnés [ici] (http://stackoverflow.com/questions/39948173/php-uploading-photos?noredirect=1#comment67176654_39948173)? –

Répondre

0

PHP-novice ici

Je suis en train de faire un script simple à télécharger une photo à ma base de données. Je sais que ce n'est pas très efficace, mais je veux le faire quand même.

J'ai donc ces deux fichiers .php:

<html> 
<body> 
    <form action="upload.php"> 
     <input type="file" name="photo"> 
     <input type="submit" name="submit" value="Submit" /> 
    </form> 
</body> 

et

<?php 

error_reporting(error_reporting() & ~E_NOTICE); 

$conn = mysqli_connect("localhost", "root", "", "poze"); 

if(!$conn){ 
    die("Connection failed: ".mysqli_connect_error()); 
} 
else echo "Succes"; 

$imageName = mysql_real_escape_string($_FILES["image"]["name"]); 
//$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])); 
//$imageType = mysql_real_escape_string($_FILES["image"]["type"]); 

if($imageName==NULL){ 
    echo "Null"; 
} 
else{ 
    echo "The photo is okay!"; 
} 

Après avoir téléchargé tout type d'image, il fait écho comme vide.

Pourrait, quelqu'un m'explique pourquoi? Et comment pourrais-je le résoudre?

SOLVING:

J'ai changé les API pour que je n'utiliser mysqli

Indice

<html> 
<body> 
    <form enctype="multipart/form-data" action="upload.php" method="POST"> 
     <input type="file" name="photo"> 
     <input type="submit" name="submit" value="Submit" /> 
    </form> 
</body> 

script PHP:

<?php 

error_reporting(error_reporting() & ~E_NOTICE); 

$conn = mysqli_connect("localhost", "root", "", "poze"); 

if(!$conn){ 
    die("Connection failed: ".mysqli_connect_error()); 
} 
else echo "Succes"."<br>"; 

$imageName = mysqli_real_escape_string($conn ,$_FILES["photo"]["name"]); 
$imageData = mysqli_real_escape_string($conn, file_get_contents($_FILES["photo"]["tmp_name"])); 
$imageType = mysqli_real_escape_string($conn, $_FILES["photo"]["type"]); 

//process the image ... 
0

Vous devez d'abord utiliser cet élément de forme:

<form enctype="multipart/form-data" action="upload.php" method="POST"> 

et d'autre part, vous devez lire le contenu du fichier à partir du dossier temporaire et enregistrez DB:

$tmpName = $_FILES['userfile']['tmp_name']; 
$fp  = fopen($tmpName, 'r'); 
$content = fread($fp, filesize($tmpName)); 
$content = addslashes($content); 
fclose($fp); 

puis enregistrez ce contenu à un champ dans une base MySQL de type BLOB.