upload fichier

doudou34
Invité n'ayant pas de compte PHPfrance

18 juil. 2006, 09:35

Bonjour ;

J'ai telecharger un script sur internet permetant d'uploader des fichiers sur mon serveur. L'upload se fait bien, mais l'inscription du nom du fichier dans la base de donnée ne se fait pas.

Si quelqu'un a une idee je laisse le code

Merci d'avance a tous

Code : Tout sélectionner

<?php // --------------------------------------------- // Pure PHP Upload version 1.1 // ------------------------------------------- if (phpversion() > "4.0.6") { $HTTP_POST_FILES = &$_FILES; } define("MAX_SIZE",0); define("DESTINATION_FOLDER", "./"); define("no_error", "../index.php"); define("yes_error", ""); $_accepted_extensions_ = ""; if(strlen($_accepted_extensions_) > 0){ $_accepted_extensions_ = @explode(",",$_accepted_extensions_); } else { $_accepted_extensions_ = array(); } $_file_ = $HTTP_POST_FILES['file']; if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['file']['error'] == 0){ $errStr = ""; $_name_ = $_file_['name']; $_type_ = $_file_['type']; $_tmp_name_ = $_file_['tmp_name']; $_size_ = $_file_['size']; if($_size_ > MAX_SIZE && MAX_SIZE > 0){ $errStr = "File troppo pesante"; } $_ext_ = explode(".", $_name_); $_ext_ = strtolower($_ext_[count($_ext_)-1]); if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){ $errStr = "Estensione non valida"; } if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){ $errStr = "Cartella di destinazione non valida"; } if(empty($errStr)){ if(@copy($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){ header("Location: " . no_error); } else { header("Location: " . yes_error); } } else { header("Location: " . yes_error); } } ?>

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

18 juil. 2006, 10:32

L'upload se fait bien, mais l'inscription du nom du fichier dans la base de donnée ne se fait pas.
C'est normal, ce code gère un upload de fichier, mais ne fais absolument pas référence à une quelconque action sur une base de données :)
Si quelqu'un a une idee je laisse le code
Ben l'idée elle est simple, il faut que tu ajoutes le code pour l'enregistrement des données qui t'interessent dans ta base en fonction de la structure de celle-ci :)

Y a de très bon tutos sur internet qui traitent de l'accès aux bases et la gestion des données :)

doudou34
Invité n'ayant pas de compte PHPfrance

18 juil. 2006, 10:43

j'ai fais le code pour l'insertion dans la base. je veux inserer dans ma base le nom du fichier (celui que j'upload), et un commentaire. Le commentaire s'insere mais pas le nom du fichier

doudou34
Invité n'ayant pas de compte PHPfrance

18 juil. 2006, 10:48

j'ai fais le code pour l'insertion dans la base. je veux inserer dans ma base le nom du fichier (celui que j'upload), et un commentaire. Le commentaire s'insere mais pas le nom du fichier

Code : Tout sélectionner

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { $insertSQL = sprintf("INSERT INTO fichier_act_med (id_fich, comm_fich, nom_fich) VALUES (%s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['comm_fich'], "text"), GetSQLValueString($_POST['file'], "text");
Merci

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

18 juil. 2006, 16:41

Le nom du fichier ne se trouve pas dans $_POST['file'], mais d'après le script que tu as donné plus haut dans la variable $_name_ ;)

A noter qu'au lieu d'un @copy bien compliqué et ne gérant pas les erreurs pour copier le fichier temporaire vers le dossier de destination, il existe une fonction move_uploaded_file() qui fait ça très bien et très proprement :)