PHP - UPLOADER

M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -  
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais que sur mon site on puisse Uploader des fichier et qu'ils se sauvegarde sur mon mac

Voila mon code html :
<form method="POST" action="upload.php" enctype="multipart/form-data">
     <!-- On limite le fichier à 100Ko -->
     <input type="hidden" name="MAX_FILE_SIZE" value="100000">
     Fichier : <input type="file" name="avatar">
     <input type="submit" name="envoyer" value="Envoyer le fichier">
</form>


Et voila mon code php
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>


Que faut-il changer pour que les fichiers se sauvegarde sur mon mac ?

Merci


A voir également:

14 réponses

Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonsoir,

Il manque une application qui aille chercher les fichiers sur ton serveur. À ma connaissance, php ne permet pas ce genre de transfert.

Tu peux éventuellement héberger ton site sur ton mac, au quel cas les fichiers uploadés le seront directement sur ton mac.

Ou alors, tu fais plus simple et tu ouvres un compte Dropbox ou équivalent.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci beaucoup tralala8 de ta réponse !
Comment héberger mon site su mon Mac ?
Comment utiliser drop box ?
Comment générer un lien de téléchargent aprés l'upload ?

Merci
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Pour héberger ton site sur ton Mac, il faut d'abord fixer ton adresse ip (celle-ci étant plus que probablement dynamique). Pour ça, tu as des petits programmes du genre dyndns ou no-ip. Tu devrais trouver facilement sur Google.

Pour Dropbox, c'est un site qui propose exactement ce que tu cherches à créer. Tu peux créer des dossiers et les partagers avec d'autres utilisateurs. Il faut evidemment que cette application corresponde à ce que tu veux faire. Rends-toi sur leur site pour plus d'informations.

En ce qui concerne le lien de téléchargement, je n'en ai encore jamais créé. Je n'ai donc pas de solution à te proposer pour le moment. Je vais essayer d'y réfléchir un peu car c'est un code qui peut servir.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci beaucoup,

Mais dans mon code on voit que le fichier est stocké dans un dossier <?php
$dossier = 'upload/'; qui s'apelle upload comment faire pour qu'il se stock sur mon bureau par exemple ?

Et pour dropbox, on peut partager des fichiers que entre logiciel dropbox :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Pour stocker tes fichiers sur ton bureau, je pense qu'en mettant le lien absolu vers celui-ci doit suffir. Ceci ne marchera évidemment que si ton site est hébergé sur ton Mac.

Sinon, Dropbox est une solution qui correspond à ta demande. Ce n'est pas le seul non plus. Mais il faut évidemment voir s'il correspond à l'utilisation que tu veux faire de ce genre de système. Je peux comprendre que le fait de devoir créer un compte peut être un frein.

Si tu veux utiliser ton site dans un cadre uniquement familial, je te recommande malgré tout de passer par une application telle que Dropbox (ou équivalent, il y en a plusieurs). Maintenant, si tu veux créer un site de stockage/partage de fichiers pour le grand public, c'est clair qu'il te faudra trouver une solution par toi même.

Dans ce dernier cas, il faut une longue réflexion sur l'architecture du site. Ne te lance pas dans la construction en te disant que tout va rouler et que tu mettras en oeuvre tes idées au fur et à mesure que tu les auras.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
C'est bon merci j'ai réglé mon problème, j'héberge mes fichier sur un hebergeur de 1tera :)

merci beaucoup tralala8

une derniere question, comment afficher le lien de téléchargement du fichier aprés l'upload ? Merci
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Tant mieux si tes soucis sont réglés.

Pour afficher le lien de téléchargement, il faut avant tout attribuer un id permettant d'aller rechercher le fichier uploadé (un peu à la façon de MegaUpload).

Après avoir téléchargé le fichier (sur la page "upload.php" par exemple), tu fais une redirection vers une page qui va t'affichera le lien de téléchargement (affichage.php) en envoyant l'id du fichier uploadé (ça devient affichage.php?id=1 par exemple).

De cette façon, sur la page "affichage.php", tu peux récupérer l'id transmis et y afficher un lien tel que "http://www.tonsite.com/download.php?id=1". Et tu l'as compris, cette page récupérera l'id transmis et ira chercher le fichier en question.

L'idéal dans ce genre de méthode, c'est de générer un id comme pouvait le faire MegaUpload (c'est-à-dire du genre "wd237S56RE") afin de ne pas laisser les visiteurs se promener aisément partout dans tous les fichiers uploadés.

Pour ce faire, il existe sur internet quelques algorithmes comme la génération de mot de passe. Toutefois, l'id doit être unique ! Il faudra donc regarder à ce qu'un id généré n'existe déjà pas dans ta base de données.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
Réponse compléte trés simple merci

mais comment avoir une base de donnée (question bête mais je ne sais pas :/)
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Ben si tu as pris un serveur de 1 tera, tu l'as certainement fait chez un fournisseur de ce genre de services (oh, free, ...). Ils t'ont probablement donné des accès sous forme de loin et de passions.

Tu te rends donc sur la partie phpmyadmin de ton fournisseur (https://phpmyadmin-gra2.hosting.ovh.net/ si tu es chez ovh) et tu te connectes avec les identifiants que tu as reçu.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
Ha ok merci beaucoup tu ma bien aider

Merci beaucoup
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Je refais mon premier paragraphe parce que je viens de voir que la correction automatique a foutu le bordel.

Ben si tu as pris un serveur de 1 tera, tu l'as certainement fait chez un fournisseur de ce genre de services (ovh, free, ...). Ils t'ont probablement donné des accès sous forme de login et de pass.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
et pour onetsolution.eu c'est quoi le phpmyadmin ?
Merci
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
J'ai un peu regardé sur Google et apparemment, tu peux y avoir accès depuis ton cpanel.
0
M4X0U Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci beaucoup :)
0