Valider une extention
asus02
Messages postés
215
Statut
Membre
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
bon suite a mes differents soucis avec mon module d'upload j'en ai refait un autre qui fonctionne a merveil au niveau des images,
j'en est donc refait un pour uploader des videos mais je ne pense pas que mes autorisation d'ext soit bonnes
$valid_ext = array('avi','swf', 'mpeg4','mp4');
et pour la taille maxi accepter :
$taille_max = 3500000000; pour 35 mo
le soucis c'est qu il ne veut pas d'un fichier mp4.. pourquoi y a t il une erreur quelque part dans mes extentions valide ?
merci
bon suite a mes differents soucis avec mon module d'upload j'en ai refait un autre qui fonctionne a merveil au niveau des images,
j'en est donc refait un pour uploader des videos mais je ne pense pas que mes autorisation d'ext soit bonnes
$valid_ext = array('avi','swf', 'mpeg4','mp4');
et pour la taille maxi accepter :
$taille_max = 3500000000; pour 35 mo
le soucis c'est qu il ne veut pas d'un fichier mp4.. pourquoi y a t il une erreur quelque part dans mes extentions valide ?
merci
A voir également:
- Valider une extention
- Je ne peux pas valider mon iban sur le bon coin ✓ - Forum Réseaux sociaux
- Leboncoin impossible de valider l'annonce - Forum Réseaux sociaux
- Validation impossible sur LeBonCoin ✓ - Forum Réseaux sociaux
- Impossible valider une annonce sur leboncoin - Forum Réseaux sociaux
- Captcha impossible à valider ✓ - Forum Mozilla Firefox
22 réponses
salut,
vu !
-;o)
est-ce que ça fonctionne avec les autres extensions ?
est-ce que tu convertis la casse de l'extension du fichier avant de tester ?
vu !
-;o)
est-ce que ça fonctionne avec les autres extensions ?
est-ce que tu convertis la casse de l'extension du fichier avant de tester ?
$ext = strtolower( $ext);
oui avec un swf c'est ok pas avec un mp4
et pour : est-ce que tu convertis la casse de l'extension du fichier avant de tester ?
$ext = strtolower( $ext);
je voit pas de quoi tu parle (novice en php)
et pour : est-ce que tu convertis la casse de l'extension du fichier avant de tester ?
$ext = strtolower( $ext);
je voit pas de quoi tu parle (novice en php)
tu dois faire un test pour savoir si l'extension du fichier est dans le tableau des extensions autorisées.
et tu dois faire le test avec la fonction 'in_array()'.
et le manuel PHP dit :
donc si tu cherches 'MP4' dans le tableau tu ne le trouveras pas, si tu cherches 'mp4' tu le trouveras.
alors avant de tester, tu mets ton extension en minuscules ('strtolower()'), comme ça pas de problème de casse.
(si c'est le terme 'casse' qui t'tracasse (je vais aller me coucher, moi !) c'est le fait pour une lettre d'être majuscule ou minuscule)
voili, voila, mais ça ne réglera pas forcement ton problème.
faudra penser à nous mettre le code de test un d'ces quatre !
-;o)
et tu dois faire le test avec la fonction 'in_array()'.
et le manuel PHP dit :
bool in_array ( mixed $needle, array $haystack [, bool $strict] )
in_array() recherche needle dans haystack et retourne TRUE s'il s'y trouve, ou FALSE sinon.
Le troisième paramètre strict est optionnel. S'il vaut TRUE alors in_array() vérifiera aussi que le type du paramètre needle correspond au type de la valeur trouvée dans haystack.
Note: Si needle est une chaîne, la comparaison est faite en tenant compte de la casse.
Note: Dans les versions antérieure à 4.2.0, needle ne pouvait pas être un tableau.
donc si tu cherches 'MP4' dans le tableau tu ne le trouveras pas, si tu cherches 'mp4' tu le trouveras.
alors avant de tester, tu mets ton extension en minuscules ('strtolower()'), comme ça pas de problème de casse.
(si c'est le terme 'casse' qui t'tracasse (je vais aller me coucher, moi !) c'est le fait pour une lettre d'être majuscule ou minuscule)
voili, voila, mais ça ne réglera pas forcement ton problème.
faudra penser à nous mettre le code de test un d'ces quatre !
-;o)
j'ai refait un test en ajoutant wmv et mpg car mp4 n'existe pas
le wmv ok /le avi ok /le swf ok /le mpg non
il n'y a que le mpg qui ne passe pas..
$valid_ext = array('avi','swf','mpg','wmv','mkv','mov','mpeg4');
le je ne comprend plus le mpg ne fait que 6.30 mo et ma limite est de 35mo donc vu que l'ext est valid pourquoi
il ne me la prend pas ??????
voir extentions http://www.commentcamarche.net/systemes/format.php3
le wmv ok /le avi ok /le swf ok /le mpg non
il n'y a que le mpg qui ne passe pas..
$valid_ext = array('avi','swf','mpg','wmv','mkv','mov','mpeg4');
le je ne comprend plus le mpg ne fait que 6.30 mo et ma limite est de 35mo donc vu que l'ext est valid pourquoi
il ne me la prend pas ??????
voir extentions http://www.commentcamarche.net/systemes/format.php3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tu as une gestion d'erreurs ?
le serveur ne te répond rien ?
montre nous le bout de code qui traite l'upload lui même (test extensions et poids).
le serveur ne te répond rien ?
montre nous le bout de code qui traite l'upload lui même (test extensions et poids).
si le message d'erreur apres l'upload est "veuillez inserer un fichier de type mpg, avi, swf, wmv ne depassant pas 35mo"
$repedest = "video/";
$valid_ext = array('avi','swf','mpg','wmv','mkv','mov','mpeg4');
$taille_max = 35000000000;
if ((!in_array( substr(strrchr($fichier_name, '.'), 1), $valid_ext ) ) || filesize($fichier) > $taille_max) {
echo "<big>Veuillez sélectionner un fichier de type mpg, avi, swf, mpeg4 de moins de 35mo !</big>";
et oui mais tu gères les deux erreurs avec la même condition.
j'utilise un test comme ça pour mes
j'utilise un test comme ça pour mes
upload:
<?php
$extension = strtolower( strrchr( $_FILES['img']['name'], '.' ) );
$valid_ext = array( '.avi', '.swf', '.mpg', '.wmv', '.mkv', '.mov', '.mpeg4' );
try
{
if( !in_array( $extension, array( '.avi','.swf','.mpg','.wmv','.mkv','.mov','.mpeg4' ) ) )
{
throw new Exception( 'Vous devez uploader un fichier de type '.implode( ', ', $valid_ext).'.' );
}
if( filesize( $_FILES['img']['tmp_name'] ) > IMAGE_MAX_SIZE )
{
throw new Exception( 'Le fichier est trop volumineux.');
}
}
catch( Exception $e )
{
echo( "<p>".$e->getMessage()."</p>\n" );
}
?>
regarde je vient d uploader cette video mpg DJ Crazy Frog - Popcorn (ext mpg)
http://acr02.fr/membres/srv2/video/DJ Crazy Frog - Popcorn.mpg
voila le lien de restitution http://acr02.fr/membres/srv2/video/DJ
il ne prend pas en compte les espace et certain signe comme les . les espaces et les -
la video est bien sur le serveur mais le lien n'est pas bon
http://acr02.fr/membres/srv2/video/DJ Crazy Frog - Popcorn.mpg
voila le lien de restitution http://acr02.fr/membres/srv2/video/DJ
il ne prend pas en compte les espace et certain signe comme les . les espaces et les -
la video est bien sur le serveur mais le lien n'est pas bon
on progresse, on progresse !
-;o)
et bas y a qu'a lui donner de fichier correct !
avec PHP 5 on a des filtres !!!
appliques ça à ton nom de fichier de destination avant d'
-;o)
et bas y a qu'a lui donner de fichier correct !
avec PHP 5 on a des filtres !!!
appliques ça à ton nom de fichier de destination avant d'
uploader.
$url = filter_var( $url, FILTER_SANITIZE_URL );
a quel endroit
<html>
<body>
<center>
<?php
// Repertoire de stockage des images
$repedest = "video/";
$valid_ext = array('avi','swf','mpg','wmv','mkv','mov','mpeg4');
$taille_max = 35000000000;
if ((!in_array( substr(strrchr($fichier_name, '.'), 1), $valid_ext ) ) || filesize($fichier) > $taille_max) {
echo "<big>Veuillez sélectionner un fichier de type mpg, avi, swf, mpeg4 de moins de 35mo !</big>";
} else {
if ( file_exists($repedest.$fichier_name) ) {
echo "<big>Le fichier ".$fichier_name." existe déjà !!</big>";
} else {
if ( !file_exists($fichier) ) {
echo "<big>Erreur d'upload...</big>";
} else { // ici on déplace le fichier ou on veut
if ( !@copy($fichier,$repedest.$fichier_name) ) {
echo "<big>Erreur, contactez l'administrateur...</big>";
} else {
echo "<big>Fichier ".$fichier_name." ajouté</big>";
echo "<br><br>Pour afficher votre video dans une page, inserez le code suivant : <b><a href =http://acr02.fr/membres/srv2/video/".$fichier_name.">http://acr02.fr/membres/srv2/video/".$fichier_name."</a></b>";
}
}
}
}
?>
<br>
<br>
<a href=upload.html>[Retour a l'accueil]</a>
<a href=upload.html>[Charger une nouvelle video]</a>
</center>
</body>
</html>
fouillouillou ce bazard !
-;o)
il voudra peut être que tu intercales une variable.
et ton code est pas des plus orthodoxes, il utilise pas 'move_uploaded_file()' qui est pourtant faite pour !
-;o)
<html>
<body>
<center>
<?php
// Repertoire de stockage des images
$repedest = "video/";
$valid_ext = array('avi','swf','mpg','wmv','mkv','mov','mpeg4');
$taille_max = 35000000000;
if ((!in_array( substr(strrchr($fichier_name, '.'), 1), $valid_ext ) ) || filesize($fichier) > $taille_max) {
echo "<big>Veuillez sélectionner un fichier de type mpg, avi, swf, mpeg4 de moins de 35mo !</big>";
} else {
if ( file_exists($repedest.$fichier_name) ) {
echo "<big>Le fichier ".$fichier_name." existe déjà !!</big>";
} else {
if ( !file_exists($fichier) ) {
echo "<big>Erreur d'upload...</big>";
} else { // ici on déplace le fichier ou on veut
if ( !@copy( $fichier,filter_var( $repedest.$fichier_name, FILTER_SANITIZE_URL ) ) ) {
echo "<big>Erreur, contactez l'administrateur...</big>";
} else {
echo "<big>Fichier ".$fichier_name." ajouté</big>";
echo "<br><br>Pour afficher votre video dans une page, inserez le code suivant : <b><a href =http://acr02.fr/membres/srv2/video/".$fichier_name.">http://acr02.fr/membres
/srv2/video/".$fichier_name."</a></b>";
}
}
}
}
?>
<br>
<br>
<a href=upload.html>[Retour a l'accueil]</a>
<a href=upload.html>[Charger une nouvelle video]</a>
</center>
</body>
</html>
il voudra peut être que tu intercales une variable.
et ton code est pas des plus orthodoxes, il utilise pas 'move_uploaded_file()' qui est pourtant faite pour !
comme je te l'ai deja dit je suis novice en php si tu peut m'explique clairement voir avec un exemple
que ce post me serve a avancer car la je nage complet
merci d'avance
en plus j'aimerais que le lien me donne le lien diret plu le lien avec lecteur
que ce post me serve a avancer car la je nage complet
merci d'avance
en plus j'aimerais que le lien me donne le lien diret plu le lien avec lecteur
<OBJECT
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
codebase="http://activex.microsoft.com/activex/
controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" Name="MediaPlayer" ID="MediaPlayer"
style="BACKGROUND-IMAGE: images/sons/beuzaf.com.jpg; background-position: center center;">
<param name="AutoStart" value="True">
<param name="AutoSize" value="false"200" height="200"">
<param name="DisplaySize" value="0">
<param name="EnableContextMenu" value="False">
<param name='src' value='http://acr02.fr/membres/srv2/titre.wmv'.<embed src='http://beuzaf.com/clip/clips/le-parking_consequence.wmv' type='audio/x-pn-realaudio-plugin' console='Clip1' controls='ImageWindow' <param name="ShowControls" value="False">
<param name="ShowStatusBar" value="True">
</object>
regarde ce source.
il y a une gestion complète des erreurs, je t'ai ajouté des commentaires. dans ce cas c'était pour des images.
il y a une gestion complète des erreurs, je t'ai ajouté des commentaires. dans ce cas c'était pour des images.
<?php
define( 'IMAGE_MAX_SIZE', 35000000000 ); // la valeur est fixe donc une constante plutôt qu'une variable, en général on mets les constantes en début de document, comme ça on peut modifier les paramètres sans avoir à chercher dans le code.
define( 'REP_DEST', 'video/' );
try // un bloc Try..Catch, toutes les erreurs qui se produisent dans Try sont gérées par toi dans le Catch
{
// et c'est parti !
if( !isset( $_FILES['img'] ) ) //on vérifie qu'il y ait bien un fichier de chargé, sinon on lève une erreur qui sera gérée par le Catch (on l'affichera en fait)
{
throw new Exception( 'Aucun fichier à télécharger.');
}
$extension = strtolower( strrchr( $_FILES['img']['name'], '.' ) ); // on récupère l'extension du fichier en minuscules
if( !in_array( $extension, array( '.gif', '.jpg', '.jpeg', '.png' ) ) ) // on vérifie que l'extension soit autorisée, sinon : erreur !
{
throw new Exception( 'Vous devez uploader un fichier de type gif, jpg, jpeg.');
}
if( filesize( $_FILES['img']['tmp_name'] ) > IMAGE_MAX_SIZE ) // on vérifie que la taille du fichier soit inférieure au max, sinon...
{
throw new Exception( 'Le fichier est trop volumineux.');
}
$fileName = filter_var( $_FILES['img']['name'], FILTER_SANITIZE_URL ); // on crée le nom du fichier sur le serveur, en fait on nettoie le nom du fichier qui a été envoyé (pas d'espaces, de caractères spéciaux...)
if( move_uploaded_file( $_FILES['img']['tmp_name'], REP_DEST.$fileName ) ) // on tente de transférer le fichier du dossier temporaire jusqu'au dossier que tu as choisi.
{
echo( "<p>Transfert réussi.</p>\n" ) // si c'est ok, on dit "Bravo !"
}
else
{
throw new Exception( 'Echec de l\'upload.'); // sinon on lève une erreur
}
}
Catch ( Exception $e )
{
echo( "<p>".$e->getMessage()."</p>\n" ); // quand une erreur est levée, elle attérie là et est affichée.
}
?>
desole mais je pige pas ....
ca me soule tout marche sauf que les esoace et les points ne sont pas pris en charge ce qui fait que le lien final n'est pas bon malgre que le fichier soit bien uploader sur le serveur..
ca me soule tout marche sauf que les esoace et les points ne sont pas pris en charge ce qui fait que le lien final n'est pas bon malgre que le fichier soit bien uploader sur le serveur..
t'as essayé ce que je t ai mis en <11> ?
c'est souligné au milieu du code
c'est souligné au milieu du code
if ( !@copy( $fichier,filter_var( $repedest.$fichier_name, FILTER_SANITIZE_URL ) ) ) {
et avec un tru comme ca ca pourrais pas coller
ou
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
ou
{
$nom_img = preg_replace("/\.([a-zA-Z]{3,4})$/i", "_".time().".\\1", $nom_img);
}
<html>
<body>
<center>
<?php
// Repertoire de stockage des images
$repedest = "video/";
$valid_ext = array('avi','swf','mpg','wmv','mkv','mov','mpeg4');
$taille_max = 35000000000;
if ((!in_array( substr(strrchr($fichier_name, '.'), 1), $valid_ext ) ) || filesize($fichier) > $taille_max) {
echo "<big>Veuillez sélectionner un fichier de type mpg, avi, swf, mpeg4 de moins de 35mo !</big>";
} else {
if ( file_exists($repedest.$fichier_name) ) {
echo "<big>Le fichier ".$fichier_name." existe déjà !!</big>";
} else {
if ( !file_exists($fichier) ) {
echo "<big>Erreur d'upload...</big>";
} else { // ici on déplace le fichier ou on veut
$dest_fichier = $repedest.$fichier_name;
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
if ( !@copy( $fichier, $dest_fichier ) ) {
echo "<big>Erreur, contactez l'administrateur...</big>";
} else {
echo "<big>Fichier ".$fichier_name." ajouté</big>";
echo "<br><br>Pour afficher votre video dans une page, inserez le code suivant : <b><a href =http://acr02.fr/membres/srv2/video/".$fichier_name.">http://acr02.fr/membres
/srv2/video/".$fichier_name."</a></b>";
}
}
}
}
?>
<br>
<br>
<a href=upload.html>[Retour a l'accueil]</a>
<a href=upload.html>[Charger une nouvelle video]</a>
</center>
</body>
</html>