code pour envoyer nom fichier upload dans bdd

Eléphant du PHP | 94 Messages

18 juin 2010, 19:11

bonsoir à tous,
je me permets d'ouvrir un autre topic car l'ancien ouvert comporté trop de page et n'a pas abouti malgré l'aide de certains.
je cherche un script qui permet d'envoyer le nom d'un fichier uploder dans une bdd.

j'ai un script qui permet d'enregistrer le fichier mais je ne trouve rien pour envoyer le nom à moins que vous ayez une idée qui me permettrait de reconnaitre le fichier uploader par un de mes membres.

par avance merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 juin 2010, 22:01

Quand tu effectues le move_uploaded_file(), tu spécifies le chemin et le nom du fichier ?

Qu'est ce qui t'empêche d'utiliser ce même nom de fichier dans une requête sql pour le stocker là où tu en as besoin ?
if (move_uploaded_file($_FILES['xxx']['tmp_name'], $nomDuFichier)) {
   $sql = "UPDATE maTable SET nom_du_fichier = '".$nomDuFichier."' 
      WHERE id = ". $idDuUserKaUploadéLeFichier;
}
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 94 Messages

20 juin 2010, 14:08

Merci ryle pour ta rep.

j'ai intégré le code et cela me donne un message d'erreur. peux tu me dire si j'ai bien mis le code et pourquoi cela me donne un mess d'erreur. dans ma base le nom est nomDuFichier.
pour info je suis novice
ci dessous mon code:
<?php

if(isset($_FILES['photo']))
{
  // params
  unset($erreur);
  $extensions_ok = array('png', 'gif', 'jpg', 'jpeg','doc');
  $taille_max = 100000;
  $dest_dossier = 'c:/texte';
  // vérifications
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
  {
    $erreur = 'Veuillez sélectionner un fichier de type png, gif, jpg ou doc !';  
  }
  elseif( file_exists($_FILES['photo']['tmp_name']) 
          and filesize($_FILES['photo']['tmp_name']) > $taille_max)
  {
    $erreur = 'Votre fichier doit faire moins de 100Ko !';
  }
  // copie du fichier
  if(!isset($erreur))
  {
    $dest_fichier = basename($_FILES['photo']['name']);
    // formatage nom fichier
    // enlever les accents
    $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    // remplacer les caracteres autres que lettres, chiffres et point par _
    $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
    // copie du fichier
    if (move_uploaded_file($_FILES['xxx']['tmp_name'], $nomDuFichier)) {
   $sql = "UPDATE maTable SET nom_du_fichier = '".$nomDuFichier."'
      WHERE id = ". $idDuUserKaUploadéLeFichier;
}
?>
<?php
include_once('bas.php');
?>
ci dessous le code d'erreur

Warning: addslashes() expects parameter 1 to be string, array given in C:\Program Files\EasyPHP-5.3.1\www\site\fonctions.php on line 7

par avance merci

ViPHP
fab
ViPHP | 2657 Messages

20 juin 2010, 15:25

Je suppose que ce n'est pas le fichiers "fonctions.php" que tu nous montres ici alors que le message d'erreur est assez clair..
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 94 Messages

20 juin 2010, 15:30

oui voila le fichier fonction. mais le code d'erreur signifie quoi?? PAR AVANCE MERCI
<?php
function formulaires($valeur)
	{
	$valeur=trim(htmlspecialchars(addslashes($valeur)));
	return $valeur;
	}


?>

Mammouth du PHP | 661 Messages

20 juin 2010, 17:02

mais le code d'erreur signifie quoi??
http://translate.google.fr/#en|fr|Warni ... ay%20given

@++

Eléphant du PHP | 94 Messages

20 juin 2010, 18:22

MERCI MAIS LORSQU ON EST NOVICE CHAUD A COMPRENDRE CELA SIGNIFIE QUOI???

Attention: addslashes () s'attend à ce que le paramètre 1 à chaîne, un tableau donné

ViPHP
AB
ViPHP | 5818 Messages

20 juin 2010, 18:59

Attention: addslashes () s'attend à ce que le paramètre 1 soit une chaîne, un tableau a été donné.

dans ce cas c'est que la variable "$valeur" que tu transmet à ta fonction "formulaires" est un tableau. Or les fonctions "trim", "htmlspecialchars" et "addslashes" que tu utilise dans cette fonction sont prévues pour traiter des chaines de caractères et non pas pour traiter des tableaux.

Mais au fait elle sert à quoi cette fonction ?


A part ça pour info il y a une classe de téléchargement ici et dans ce même lien un tuto sur l'upload (au message précédent). Tu pourrais soit l'utiliser soit t'en inspirer pour un renommage des fichiers si déjà existants sur le serveur. Car dans ton script le dernier fichier téléchargé écrasera celui déjà existant sur le serveur s'il porte le même nom.

Eléphant du PHP | 94 Messages

20 juin 2010, 19:07

merci pour ta rep.
à vrai dire je ne sais pas trop j'ai repris un script que je modifie