rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Php + deplacer un fichier

Camuke, le mardi 12 juin 2007 à 09:34:55
salut,

J'ai cree un formulaire qui permet, grace a un bouton parcourir de recuperer un fichier video.
Lorsqu'on clique sur un bouton "envoyer la video", il se passe choses:
-1er: Sa copie le fichier vers un dossier specifique (sur le serveur de mon site)
-2eme: Sa met a jour une base de données (le nom, et l'emplacement du fichier : (dossierspecifique/nomfichier.php)
-3eme: Affiche un lien a copier dans un article de mon site pour lire se fichier.

Le probleme s'est que avant de copier le lien, je veux verifier si le fichier existe deja, et si s'est le cas, j'affiche une boite de dialogue qui demande si l'on veux ou pas remplacer le fichier.
Si s'est pas le cas, le fichier deja existant est supprimer puis sa devrai inserer le nouveau mais l'insertion ne marche pas.

Voila le code:

PAGE INSERTIONVIDEO.PHP

<?
session_start();
include "globale.inc.php";
include "fonction.inc.php";
$connection = connecte();
?>
<html>
<head>
</head>
<body>
<?
if (isset($_FILES['FichierVideo']))
{
//recuperation des données du formulaires
$NomFichier = $_FILES['FichierVideo']['name'];
$TmpFichier = $_FILES['FichierVideo']['tmp_name'];
if (isset($_GET['NomVideo'], $_GET['Confirmation']))
{
$NomVideo = $_GET['NomVideo'];
$Confirmation = $_GET['Confirmation'];
}
else if (isset($_POST['NomVideo']))
{
$NomVideo = $_POST['NomVideo'];
$Confirmation = "";
}

//Verification de l'existance du Fichier
$EmplacementFichier = 'C:/Program Files/EasyPHP1-8/www/joomlatest/video/video/'.$NomFichier;
$FileExist = file_exists($EmplacementFichier);
if($FileExist)
{
$_SESSION['NomFichier']= $NomFichier;
$_SESSION['TmpFichier']= $TmpFichier;
$_SESSION['NomVideo']= $NomVideo;
$_SESSION['FileExist'] = $FileExist;
echo '
<script type="text/javascript">
vConfirmation = confirm("Un fichier du meme nom existe deja, voulez vous le remplacer?");
if (vConfirmation == false) {
alert("Operation Annulée");
window.close();
}
else
{
window.open("Transfert.php");
}
</script>';
}
else
{
InsertionVideo($NomFichier, $TmpFichier, $NomVideo, $FileExist);
deconnecte($connection);
}
}
else
{
?>
<form action="/joomlatest/video/insertvideo.php" method="post" enctype="multipart/form-data">
<p><label>Nom de la Video <input type="text" name="NomVideo"></label></p>
<p><label>Lien de la Video <input type="file" size="" name="FichierVideo" value="5000000"></label></p>
<p><input type="submit" value="Inserer la video"></p>
</form>
<?
}
?>
</body>
</html>

CODE DE LA PAGE TRANSFERT.PHP

<?
session_start();
include "globale.inc.php";
include "fonction.inc.php";
$connection = connecte();
?>
<html>
<head>
</head>
<body>
<?
{
$NomFichier = $_SESSION['NomFichier'];
$TmpFichier = $_SESSION['TmpFichier'];
$NomVideo = $_SESSION['NomVideo'];
$FileExist = $_SESSION['FileExist'];
InsertionVideo($NomFichier, $TmpFichier, $NomVideo, $FileExist);
}
?>
</body>
</html>

CODE DE LA PAGE FONCTION.INC.PHP

function InsertionVideo ($eNomFichier, $eTmpFichier, $eNomVideo, $eFileExist) {
include "globale.inc.php";
$connection = connecte();
//Copie de la video vers le dossier du serveur.
$LienVideo = 'C:/Program Files/EasyPHP1-8/www/joomlatest/video/video/'.$eNomFichier;
echo $LienVideo.'</br>';
echo $eTmpFichier.'</br>';
if ($eFileExist)
{
if (unlink($LienVideo))
{
echo 'suppression reussit';
}
else
{
echo 'suppresion rater';
}
if (move_uploaded_file($eTmpFichier, $LienVideo))
{
echo 'Insertion reussit';
}
else
{
echo 'Insertion echoué';
}
}
else
{
if (move_uploaded_file($eTmpFichier, $LienVideo))
{
echo 'Insertion reussit';
}
else
{
echo 'Insertion echoué';
}
}
.... le reste fonctionne, c'est l'insertion dans la base de données.
Configuration: Windows 2000
Internet Explorer 6.0
Répondre à Camuke  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le mardi 12 juin 2007 à 10:24:24
aparement tu utilise une fonction move_uploaded_file($eTmpFichier, $LienVideo)
pourais tu nous la montrer?

si c'est une fonction d'upload essai plutot de supprimer avec delete puis d'insérer avec insert...
Répondre à vdumontier

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Camuke, le mardi 12 juin 2007 à 10:45:27
si par montrer, tu veux un lien sur le site, je peux pas car le site est en intranet de la societe ou je travaille donc il n'est pas sur le net.

Pour le delete et insert, tu parle des requete sql non ? (insert into..... et delete from...), si oui le probleme n'est pas la, la base de donnée ne pose aucun probleme, tout marche a la perfection (ya au moins 1 truc qui fonctionne ^^)

J'y connais pas grand chose mais je pence que lorsque je transfert les donnée vers ma page: transfert.php, j'ai l'impression que mon pc ne retrouve plus le fichier temporaire (on dirai qu'il est supprimer) car lorsque la video n'existe pas deja, je ne passe pas par ma page Transfert.php l'insertion fonctionne correctement.(j'utilise cette page car je peux pas faire appel a une fonction php dans du javascript donc j'ouvre une nouvelle page qui elle appelle la fonction).


J'ai pencé a une autre solution mais je sais pas du tout comment faire:
Quand l'on clique sur mon bouton Parcourir et que l'on selectionne un fichier, l'emplacement de la vidéo se copie dans un texte box mais j'ai pas trouver comment le recuperer.
Si quelqu'un sait comment faire, je ferai un copy() et sa pourrai resoudre mon probleme
Répondre à Camuke

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le mardi 12 juin 2007 à 12:22:34
j'entendai copie du code lol

qu'est ce que tu entend toi par "copie dans un texte box " tu veux copier l'adresse dans un fichiers .txt ou quelque chose comme ça pour le sauvegarder un moment?

si oui renseigne toi sur fopen(), fputs() et fget() en php
Répondre à vdumontier

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Camuke, le mardi 12 juin 2007 à 12:34:59
tout le code est dans mon 1er post non?, ce que j'ai pas mit se sont la page de connection a la base (sa marche sa j'en suis sur), et diverse fonction de calcul qui n'ont rien a voir.
Lorsque je met sa en code:

<form action="/joomlatest/video/insertvideo.php" method="post" enctype="multipart/form-data">
<p><label>Nom de la Video <input type="text" name="NomVideo"></label></p>
<p><label>Lien de la Video <input type="file" size="" name="FichierVideo" value="5000000"></label></p>
<p><input type="submit" value="Inserer la video"></p>
</form>

3 chose s'affiche:
-une texte box NOMVIDEO, l'utilisateur rentre un nom pour sa video
-un bouton parcourir qui est composé en 2: il y a un champ de texte ou l'on peux saisir l'emplacement du fichier (ex: C://programfile/easyPhp/www/video/toto.wnv) et a cote un bouton PARCOURIR qui permet de selectionner un fichier et sa entre l'emplacement du fichier automatique dans le champ texte. ( sa permet d'evite simplement d'avoir a saisir l'emplacement)
Le probleme s'est que se qu'il ecrit dedans, j'arrive pas a le recuperer.
Je vais regarder a quoi servent les fonctions que tu m'a donner et je te dirai quoi.
Merci
Répondre à Camuke

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le mardi 12 juin 2007 à 12:50:19
ah attend tu veux récuperer l'adresse url de la video selectionner par input type file? c'est ça?
Répondre à vdumontier

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Camuke, le mardi 12 juin 2007 à 12:52:41
OUI ^^
Répondre à Camuke

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le mardi 12 juin 2007 à 13:54:15
et bien $_POST['FichierVideo'] il te donne quoi?

me rapel plus trop comment foncitonne les type file mais normalement du récupère comme n'importe quel champs!
Répondre à vdumontier

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Camuke, le mardi 12 juin 2007 à 14:01:52
Qje fait un echo de $_POST['FichierVideo'], il m'ecrit array car les files renvoi un tableau qui contient le nom, une adresse d'un fichier temporaire (celui qui me pose probleme a l'origine ^^), et d'autre info comme le type et la taille mais pas l'adresse exact du fichier malheuresement.
Répondre à Camuke

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Camuke, le mardi 12 juin 2007 à 14:34:02
Je confirme se que j'ai dit lors d'un post precedent, lorsque je lance ma page: Transfert.php, mon fichier temporaire qui contient mon fichier est detruit donc mon deplacement ne peux plus fonctionner.
Répondre à Camuke

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le mardi 12 juin 2007 à 14:37:15
fais un print_r ($tab);

pour voir le contenu du tableau
pâr contre je trouve cela bizar qu'il te supprime ton fichier...
Répondre à vdumontier

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Camuke, le mardi 12 juin 2007 à 16:19:10
Voila se que affiche ton print:

Array ( [name] => CHANGELOG.php [type] => application/octet-stream [tmp_name] => C:/Program Files/EasyPHP1-8\tmp\php16.tmp [error] => 0 [size] => 99938 );

Sinon j'ai reussit a contourné mon probleme, au lieu de faire du javascript et devoir appelle une autre page, j'ai demandé dans mon 1er formulaire: "Si le fichiez existe, voulez vous le remplacer?" grace a un type radio donc mon fichier temporaire n'est pas detruit et tout fonctionne.

Si tu a des idée de comment resoudre le probleme avec php et javascript, tu peux toujours les mettre, je pourrais peu etre apprendre des trucs.

Sinon merci de m'avoir aidé.
Répondre à Camuke

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 vdumontier, le mardi 12 juin 2007 à 16:30:31
C'est bien pensé ^^' pourquoi faire simple quand on peut faire compliquer!
Répondre à vdumontier
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger dia 0.96.1-8dia - DIA est un équivalent libre du programme VISIO de Microsoft; permettant de créer des diagrammes, des organigrammes, des...Catégorie: Dessin
Licence: Open Source
Télécharger Beneton Movie GIF 1.1.2Beneton Movie GIF - Exigences minimales : Une carte graphique compatible DirectX 8 ou plus récente (avec un minimum de 32 MB de mémoire...Catégorie: Animation
Licence: Freeware/gratuit
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « php + deplacer un fichier »