Page 1 sur 1

php upload pour insérer le nom d'une image dans une table

Posté : 12 févr. 2013, 19:31
par barale61
Bonjour,

J'essai d'utiliser l'extension php upload pour insérer le nom d'une image dans une table (le chargement de l'image fonctionne bien) mais apparamment cela fonctionne bien moins bien qu'avec du texte et d'autres données. Sauriez-vous quelle est la marche à suivre sachant que cette erreur s'affiche par-ce-que j'ai modifié le php.ini afin qu'il me retourne ce qui ne va pas. Dans un formulaire complet, tout fonctionne mis à part la récupération de la valeur de ce input file. Merci de votre aide.


Message d'ereur:

Column 'news_image' cannot be null

Comme si mon input file était "vide" (ce qui n'est pas le cas)

Re: php upload pour insérer le nom d'une image dans une tabl

Posté : 12 févr. 2013, 20:13
par schim59
Bonsoir,

Ton image se trouve où ?

Re: php upload pour insérer le nom d'une image dans une tabl

Posté : 13 févr. 2013, 17:53
par barale61
Je la télécharge sur mon disque dur et elle se charge bien dans mon dossier d'upload:

<?php
// ---------------------------------------------
// Pure PHP Upload version 1.1
// -------------------------------------------
if (phpversion() > "4.0.6") {
$HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",300000);
define("DESTINATION_FOLDER", "../upload");
define("no_error", "index.php");
define("yes_error", "erreur_img.php");
$_accepted_extensions_ = "jpg,bmp,gif,jpeg,png";
if(strlen($_accepted_extensions_) > 0){
$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
$_accepted_extensions_ = array();
}
$_file_ = $HTTP_POST_FILES['news_image'];
if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['news_image']['error'] == 0){
$errStr = "";
$news_image = $_POST['news_image'];
if((is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['news_image']['error'] == 0)){
$_name_ = $_file_['name'];
$_type_ = $_file_['type'];
$_tmp_name_ = $_file_['tmp_name'];
$_size_ = $_file_['size'];
if($_size_ > MAX_SIZE && MAX_SIZE > 0){
$errStr = "Fichier trop lourd";
}
$_ext_ = explode(".", $_name_);
$_ext_ = strtolower($_ext_[count($_ext_)-1]);
if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
$errStr = "Extension non valide";
}
if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
$errStr = "Dossier de destination non valide";
}
if(empty($errStr)){
if(@copy($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
header("Location: " . no_error);
} else {
header("Location: " . yes_error);
}
} else {
header("Location: " . yes_error);
}
}
?>
<?php require_once('../Connections/ma_connexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "news_envoi")) {
$insertSQL = sprintf("INSERT INTO news (news_titre, news_image, news_texte, news_lien, news_etat) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['news_titre'], "text"),
GetSQLValueString($_POST['_name_'], "text"),
GetSQLValueString($_POST['news_texte'], "text"),
GetSQLValueString($_POST['news_lien'], "text"),
GetSQLValueString(isset($_POST['news_etat']) ? "true" : "", "defined","1","0"));
mysql_select_db($database_ma_connexion, $ma_connexion);
$Result1 = mysql_query($insertSQL, $ma_connexion) or die(mysql_error());

$insertGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
}
mysql_select_db($database_ma_connexion, $ma_connexion);
$query_news = "SELECT * FROM news ORDER BY news_date DESC";
$news = mysql_query($query_news, $ma_connexion) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);
?>

Seul le chargement de l'image fonctionne.

Re: php upload pour insérer le nom d'une image dans une tabl

Posté : 14 févr. 2013, 08:05
par schim59
Quand tu uplpoad un fichier son nom est passé dans la variable de $_FILES[name_input][name], après il ne te reste à le traiter et l'insérer dans ta table.
Bon codage.

Re: php upload pour insérer le nom d'une image dans une tabl

Posté : 14 févr. 2013, 12:37
par barale61
Ok merci beaucoup