upload de fichier superieur a 100 ko chez free

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload de fichier superieur a 100 ko chez free

par het06 » 24 déc. 2005, 16:15

Voila ca y est c est bon tout est operationnel ca fonctionne comme je le souhaite
Merci a vous pour votre aide
:D

par Truc » 23 déc. 2005, 19:52

j obtiens un warniing qui me dit
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sdc/6/6/aelezkann/image.php:2) in /var/www/sdc/6/6/aelezkann/image.php on line 35
peut etre un élément de réponse dans la FAQ

par het06 » 23 déc. 2005, 15:30

Alors maintenant l upload fonctionne
Pour cela j ai repris le tuttorial et j ai tt fait dans un meme fichier
Voici mon code:

Code : Tout sélectionner

<?php ob_start(); if(isset($_FILES['photo'])) { // params unset($erreur); $extensions_ok = array('jpg'); $taille_max = 512000; $dest_dossier = './imageguilde/'; // vérifications if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ) { $erreur = 'Veuillez sélectionner un fichier de type jpg !'; } elseif( file_exists($_FILES['photo']['tmp_name']) and filesize($_FILES['photo']['tmp_name']) > $taille_max) { $erreur = 'Votre fichier doit faire moins de 500Ko !'; } // 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-1]+)/i', '_', $dest_fichier); // copie du fichier move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); echo "fichier envoyé"; } } header("refresh:3;url=http://aelezkann.free.fr/index.php?page=image"); ob_end_flush(); ?> <td class="frame"> <!-- Erreur ? --> <?php if(isset($erreur)){ echo '<p>', $erreur ,'</p>'; } ?> <!-- Formulaire --> <!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" --> <form method="POST" action="image.php" enctype="multipart/form-data"> <!-- Limiter la taille des fichiers à 500Ko --> <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> <fieldset> <legend>Envoi de fichiers</legend> <!-- champs d'envoi de fichier, de type file --> <p><label for="photo">Photo :</label><input type="file" name="photo" /></p> <!-- bouton d'envoi --> <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p> </legend> </fieldset> </form>
le probleme maintenant est vu que je veux que l adresse change au bout de 3 secondes, j ai utilisé la fonction header.
Or, quand je lui envoie un fichier (superieur a 100 ko pour tester),j obtiens un warniing qui me dit
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sdc/6/6/aelezkann/image.php:2) in /var/www/sdc/6/6/aelezkann/image.php on line 35
alors que je mets bien les fonctions ob_start() et ob_end_flush() en debut et en fin comme je l ai deja vu pour utiliser la fonction header
D ou peut venir ce probleme?

par Cyrano » 22 déc. 2005, 22:25

Dans le premier bloc : post_max_size 2M
C'est donc bien 2Mo de limite d'envoi par la méthode POST pour un upload HTTP.

par het06 » 22 déc. 2005, 22:17

Autre question, la directive max_upload elle se trouve vers ou a peu pres dans le fichier phpinfo? Je ne parviens pas a la voir

par Cyrano » 22 déc. 2005, 21:47

si tu as nommé ton fichier phpinfo.php, tu l'appelles dans ton navigateur et PHP se charge du reste.

par het06 » 22 déc. 2005, 21:27

Ah oui d accord
ok donc ca c est fait et maintenant que dois je voir la dedans? ou faire?

par Cyrano » 22 déc. 2005, 21:17

Voici le code intégral d'un fichier phpinfo:
<?php
phpinfo();
?>
Tu enregistre ça et tu le transfères par ftp à la racine de ton espace d'hébergement ;)

par het06 » 22 déc. 2005, 20:57

Ok mais je ne comprends pas ce que je dois ecrire dans ce fichier phpinfo
Pourrais tu etre plus clair? j ai compris que cela concernait max_upload mais je ne vois pas quoi ecrire a moins que ce ne soit juste
$max_upload=2Mo (la conversion a faire)

par Cyrano » 22 déc. 2005, 20:44

lol, ben en mettant un fichier phpinfo à la racine de ton espace, comme ICI par exemple et ICI aussi pour la version PHP5

par het06 » 22 déc. 2005, 20:42

Alors la par contre je vais avoir besoin de ton aide.
Comment je fais pour voir ce phpinfo sur free?

Merci en tout cas pour ton coup de main

par Cyrano » 22 déc. 2005, 20:23

1Ko = 1024 octet;
1Mo = 1024 ko = 1048576 octets.
==> 500Ko = 512000 octets

Donc effectivement, la valeur permet largement de laisser passer des fichiers de + de 100Ko. Vérifie donc le phpinfo sur free à propos de la directive max_upload qui devrait normalement être de 2Mo... :-k

par het06 » 22 déc. 2005, 20:15

j ai mis 500 000
ca correspond bien aux fichiers faisant 500ko non?

par Cyrano » 22 déc. 2005, 20:14

Quelle valeur as-tu mis dans le champ caché ?

par het06 » 22 déc. 2005, 20:11

Oui j ai mis ce champ caché comme je l ai vu

Mais quand je fais

Code : Tout sélectionner

if(move_uploaded_file($_FILES['Fichier']['tmp_name'],$dest_dossier.$dest_fichier)) echo "fichier envoyé"; else echo "erreur lors de l envoi";
(j ai prefere le mettre dans un test pour controler la sortie de la fonction)

Alors si le fichier fait moins de 100 ko il me repond fichier envoyé sans probleme mais des que j essaie d envoyer un fichier superieur (la j ai essayé avec un fichier de 107ko),il me met le message erreur lors de l envoi
Donc c est pour cela que je ne vois vraiment pas d ou peut provenir le probleme