begin process at 2012 05 31 02:51:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Problème Transfert de fichier (input type=file)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème Transfert de fichier (input type=file)

dimanche 5 mars 2006 à 19:28:12 | Problème Transfert de fichier (input type=file)

Hector78

Hello !

J'ai le code suivant qui devrait m'être utile pour "simuler" un ftp interne à un site. Dans les grandes lignes, il est sensé :
- permettre la sélection d'un fichier cible
- uploader le fichier sur le serveur
- faire une insertion dans une base de données (relative à l'upload)
- afficher la liste des fichier uploadés (et permettre de les supprimer)

Ce code semble tourner sur une autre machine, par contre avec Easy Php 1.8 et sur le serveur qui doit l'héberger, ça ne fonctionne pas ... là vraiment je sèche totalement, j'ai passé je ne sais pas combien d'heures à trouver le bug, mais sans succès ... est-ce que qqun pourrait m'aider ?


<?
include("head.html");
include "connection.php";

// Avec le paramètre UPGRADE=1 dans l'url,
// cela permet de générer tous les identifiants (ID_Upload) pour les fichiers qui existaient déjà
// cela supprime aussi tous les enregistrements pour lesquels le fichier n'existe pas

$trans = '';

if(isset($_GET['upgrade']))
{
 $sql = "SELECT * FROM tbl_upload;";
 $res = mysql_query($sql);

 $i=0;
 while($row = mysql_fetch_Array($res))
 {
  if($row['ID_Upload'] == '')
  {
   // L'identifiant est basé sur la date et l'heure avec un incrément puis crypté en md5
   $id_upload = substr(md5(date(Y-m-d-H-i-s).$i),0,255);
   $sql2 = 'UPDATE tbl_upload SET ID_Upload = \''.$id_upload.'\' WHERE nom_fichier = \''.$row['nom_fichier'].'\';';
   mysql_query($sql2);
   $i++;
  }
  
  // Test si le fichier existe, si non, supprime l'enregistrement
  if(!file_exists('../fichiers/'.$row['nom_fichier']))
  {
   $sql3 = 'DELETE FROM tbl_upload WHERE nom_fichier = \''.$row['nom_fichier'].'\'';
   mysql_query($sql3);
  }
 }
}
?>
<table width="500" border="0" cellspacing="1" cellpadding="1">
    <tr>
      <td width="50"></td>
      <td colspan="2"><p><strong><FONT face=Verdana color="#0000FF" size=4>Transfert
        de fichier<br>
          <br>
          </font></strong> </td>
    </tr>
    <tr>
      <td></td>
      <td>

<?
if($trans!="ok")
{
?>
<FORM ENCTYPE="multipart/form-data" ACTION="ftp.php?trans=ok" METHOD=POST>
  <table>
    <tr>
      <td>Veuillez s&eacute;lectionner le fichier &agrave; transf&eacute;rer sur
        le serveur :<br>
            </td>
    </tr>
    <tr>
      <td><input type="File" name="userfile" size="30" maxlength="255">
      </td>
    </tr>
    <tr>
      <td><input name="newname" type="hidden" value="../fichiers/" size="30" maxlength="255">
      </td>
    </tr>
    <tr>
      <td><BR><input type="submit" value="Transf&eacute;rer ce fichier" name="Upload">
            </td>
    </tr>
  </table>
  </form>
 <?
 }
 ?>

<?php
if($trans=="ok")
{

  $name= $newname."".$userfile_name;
  if ($newname=='') { $newname=$userfile_name; }
  copy($userfile, $name) ;

// Ajout de l'identifiant pour chaque fichier
// L'ID est la date et l'heure courante crypté en MD5 puis coupé à 255 caractères maximum
// Aucune chance de tomber 2 fois sur le même résultat
$ID_Upload = substr(md5(date(y-m-d-H-i-s)),0,255);

// Insertion du fichier dans la base de données
$chemin = "http://localhost/sitetest/upload/".$userfile_name;
$marequete="INSERT INTO tbl_upload (ID_Upload, nom_fichier, type_fichier, chemin_fichier, idsite) VALUES (\"$ID_Upload\",\"$userfile_name\",\"$userfile_type\",\"$chemin\", \"$idsite\")";
// Execution de la requête
$monresultat=mysql_query($marequete);
 
?>

<TABLE>
   <TR>
      <TD><b>Rapport de transfert</b></TD><TD></TD>
   </TR>
   <TR>
     
    <TD>Localisation temporaire </TD>
    <TD>: <?php echo $userfile; ?></TD>
   </TR>
   <TR>
     
    <TD>Nom du fichier </TD>
    <TD>: <?php echo $userfile_name; ?></TD>
   </TR>
  <TR>
     
    <TD>Emplacement cible </TD>
    <TD>: <?php echo $newname; ?></TD>
   </TR>
   <TR>
     
    <TD>Taille </TD>
    <TD>: <?php echo $userfile_size; ?></TD>
   </TR>
   <TR>
     
    <TD>Type de fichier </TD>
    <TD>: <?php echo $userfile_type; ?></TD>
   </TR>
</TABLE>
      <br>
      <input name="modifier2" type="button" id="modifier23" value="Fermer"  onClick="window.location.replace('ftp.php')">
      <?
 $trans="";
 }
?>
    </td>
    </tr>
  </table> 
<p>
<form name="formtext" method="post" action="<? echo "ftp.php?param=".$param."&action=executer" ?>">
  <table border="0" cellpadding="1" cellspacing="1">
    <tr>
      <td width="50"></td>
      <td colspan="2"><p><strong><FONT face=Verdana color="#0000FF" size=4>Explorateur</font><FONT face=Verdana color="#0000FF" size=4>
          FTP <br>
          <br>
          </font></strong> </td>
    </tr>
<?
// Ajout de la suppression de fichier
if(isset($_GET['FileID']) && $_GET['action'] == 1)
{
 if(strlen($_GET['FileID']) > 0)
 {
  // Récupère le nom du fichier selon l'ID passé en paramètre
  $sql = 'SELECT nom_fichier FROM tbl_upload WHERE ID_Upload = \''.$_GET['FileID'].'\';';
  $resFile = mysql_query($sql);

  // Supprime le fichier physiquement
  if(mysql_num_rows($resFile) == 1)
  {
   @unlink('../fichiers/'.mysql_result($resFile,0,'nom_fichier'));
   
   // Supprime l'enregistrement dans la base de données
   $sql = 'DELETE FROM tbl_upload WHERE ID_Upload = \''.$_GET['FileID'].'\';';
   mysql_query($sql);
   
   echo '<tr><td width="50"></td><td colspan="2"><font color="red">Votre fichier a été supprimé du serveur et de la base de données !</font></td></tr><tr><td>&nbsp;</td></tr>';
  }
 }
}

?>
    <tr>
      <td></td>
      <td>Voici la liste des fichiers transf&eacute;r&eacute;s et disponibles
        sur le serveur :<br>
      </td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td></td>
      <td>
</td>
      <td>&nbsp;</td>
    </tr>
<tr>
<td width="50"></td>
<td colspan="2">
<?
 // Création de la requête de lecture
 $marequete="SELECT * FROM tbl_upload where idsite=\"$idsite\" ORDER BY nom_fichier, type_fichier";
 // Execution de la requête
 $monresultat=mysql_query($marequete);
 echo '<TABLE>';
 while($row = mysql_fetch_array($monresultat))
  {
   if(file_exists('../fichiers/'.$row['nom_fichier'])) echo "<TR><TD><img src=\"picture/fichier.jpg\"></TD><TD><A HREF=\"../fichiers/".$row['nom_fichier']."\"  TARGET=\"_blank\">".$row['nom_fichier']."</A></TD><TD>".$row['type_fichier']."</TD><TD>".substr($row['chemin_fichier'],0,30)."...</TD><td><a href=\"ftp.php?FileID=".$row['ID_Upload']."&action=1\" alt=\"Supprimer le fichier\"><img alt=\"Supprimer le fichier\" border=0 src=\"images/ed_delete.gif\"></a></td></TR>";
  }
 echo "</TABLE>" ;
?>
</td></tr>
    <tr>
      <td></td>
      <td colspan="2"><br>
        <input name="modifier2" type="button" id="modifier22" value="Fermer"  onClick="window.location.replace('index.php')">
      </td>
    </tr>
 </table>
  </form>


<?php include("foot.html"); ?>



Cette discussion est classée dans : fichier, mysql, upload, id, row


Répondre à ce message

Sujets en rapport avec ce message

mysql_fetch_row [ par angelique ] Bonjour,Après avoir rempli un formulaire, je voudrais utiliser les résultats d'une requête pour alimenter une autre table de ma base :$resultatid = my Upload de fichier txt sur MySql [ par pierreot ] J'ai un problème à uploader un fichier txt sur PhpMyAdmin. Le but est d'insérer des données d'un fichier txt dans une table vierge, mais cela me donne Problème MySql!! [ par jnbrunet ] Bonjour,petit problème, je réalise un petit forum en php qui nous affiche toutes les discutions par les titres, comme le forum de cs, et lorsque l'on nl2br?? [ par jnbrunet ] Salut,Voila, j'ai un petit problème avec la comande nl2br...Voici mon code,sql:$rec = mysql_query("SELECT * FROM `users` WHERE id='$id'") OR die("Erre Le dernier probleme et c'est bon :) [ par lorgard ] plop enfin re ^^le code de base$db = mysql_connect('localhost','root','') or die ("erreur de connexion");//on selectionne votre basemysql_select_db('m Affichage d'une image à partir d'un menu déroulant. [ par maxofiatpolski ] Bonjour, voici mon soucis, je l'expose en entier pour que ce soit plus compréhensible... Je souhaite qu'une image s'affiche dans une page à p upload ftp [ par iHoss ] J'ai un problème d'upload ftp :la connexion se fait comme prévue mais le fichier n'est pas uploadé.Ceci est le code : $fichier = $_FILES['userfile'][' svp quelqu'un peut me corriger [ par soumabm ] svp quelqu'un peut me corriger cette page ,son principe est de deposer une annonce dans un site.j'ai une table pays,raison_social,compte_utilisateur,a php sql [ par kelm_by ] salut tous le monde je ne sais pas ouest l'erreur dans ce code??????????,merci d'avance$result = mysql_query("SELECT * FROM table ORDER BY n ASC LIMIT script site [ par killeur ] Bonjour voila je suis débutant en php et je suis en train de codé mon propre site mai voila je block sur un script voici le script


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,529 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales