Uploads fichier par URL
nico9219
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
nico9219 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
nico9219 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors j'aurais besoin de votre aide :)
Enfaîte sur mon site internet j'aimerais créer dans une page un système qui me permettrai d'uploader a partir d'une URL sans passer par l'ordinateur. Comme on voit des fois sur les forum pour uploader un avatar, Sauf que moi se ne serait pas pour des images mais plutôt pour des fichier comme des .ZIP, .RAR, .AVI, .FLV .
J'ai déjà trouver un script qui permet de le faire mais ne marche que pour les image.
Et le script n'aurait pas besoin d'être sécuriser car il ne serait utiliser que par moi.
Sa me permettrai de gagner beaucoup de temps si sa existait ^^
voila le script que j'ai trouver mai ne marche que avec les images (j'ai déjà essayer de modifier des extension autoriser mais ne marche pas)
Voila merci beaucoup.
Alors j'aurais besoin de votre aide :)
Enfaîte sur mon site internet j'aimerais créer dans une page un système qui me permettrai d'uploader a partir d'une URL sans passer par l'ordinateur. Comme on voit des fois sur les forum pour uploader un avatar, Sauf que moi se ne serait pas pour des images mais plutôt pour des fichier comme des .ZIP, .RAR, .AVI, .FLV .
J'ai déjà trouver un script qui permet de le faire mais ne marche que pour les image.
Et le script n'aurait pas besoin d'être sécuriser car il ne serait utiliser que par moi.
Sa me permettrai de gagner beaucoup de temps si sa existait ^^
voila le script que j'ai trouver mai ne marche que avec les images (j'ai déjà essayer de modifier des extension autoriser mais ne marche pas)
<?php $script_name = "images.php"; $repertoire = "../img/"; if($mode=="copy") // Copier une image depuis une URL { echo "<h2>Copie d'image</h2>\n"; $er=0; if(!preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $url, $url_ary)) $er=1; if(empty($url_ary[4])) $er=1; if($er==1) { ?><form name="form1" method="post" action="<? echo $script_name; ?>"> <p><b><font color="red">URL incomplète:</font></b> <input name="url" type="text" id="url" size="100" value="<? echo $url; ?>"> <input type="submit" name="Submit" value="Copier"> <input name="mode" type="hidden" id="mode" value="copy"> <a href="<? echo $script_name; ?>">Annuler</a></p> </form> <?php } else { $maxsize = 100000; $base_filename = substr($url_ary[4],strrpos($url_ary[4],"/")+1); $base_get = '/' . $url_ary[4]; $port = ( !empty($url_ary[3]) ) ? $url_ary[3] : 80; if($base_filename=="") die("<h2>Impossible de télécharger l'image...</h2><p>Erreur de récupération du nom.</p></body></html>"); if ( !($fsock = fsockopen($url_ary[2], $port, $errno, $errstr)) ) { die("<h2>Impossible de télécharger l'image...</h2><p>Pas de connexion.</p></body></html>"); } fputs($fsock, "GET $base_get HTTP/1.1\r\n"); fputs($fsock, "Host: " . $url_ary[2] . "\r\n"); fputs($fsock, "Accept-Language: fr\r\n"); fputs($fsock, "Accept-Encoding: none\r\n"); fputs($fsock, "User-Agent: PHP\r\n"); fputs($fsock, "Connection: close\r\n\r\n"); unset($data); while( !feof($fsock) ) { $data .= fread($fsock, $maxsize); } fclose($fsock); if (!preg_match('#Content-Length\: ([0-9]+)[^ /][\s]+#i', $data, $file_data1) || !preg_match('#Content-Type\: image/[x\-]*([a-z]+)[\s]+#i', $data, $file_data2)) { die("<h2>Impossible de télécharger l'image...</h2><p>Aucune donnée.</p></body></html>"); } $filesize = $file_data1[1]; $filetype = $file_data2[1]; if ( !$error && $filesize > 0 && $filesize < $maxsize ) { $data = substr($data, strlen($data) - $filesize, $filesize); $filename = $repertoire.$base_filename; if(file_exists($filename)) echo "<p>Le fichier de destination ".$base_filename." existe déjà !</p>"; else { $fptr = fopen($filename, 'wb'); $bytes_written = fwrite($fptr, $data, $filesize); fclose($fptr); if ( $bytes_written != $filesize ) { unlink($tmp_filename); die("<h2>Impossible de télécharger l'image...</h2><p>Echec d'écriture.</p></body></html>"); } echo "<p>".$base_filename." enregistré avec succès ! <img src='".$repertoire.$base_filename."'></p>"; } } else { die("<h2>Impossible de télécharger l'image...</h2><p>Fichier trop gros.</p></body></html>"); } } } if($mode=="upload") // Envoyer une image { echo "<h2>Upload d'image</h2>\n"; $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); $taille_max = 100000; // vérifications if( !in_array( strtolower(substr(strrchr($_FILES['file']['name'], '.'), 1)), $extensions_ok) ) { $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; } elseif( file_exists($_FILES['file']['tmp_name']) and filesize($_FILES['file']['tmp_name']) > $taille_max) { $erreur = 'Votre fichier doit faire moins de 500Ko !'; } // copie du fichier if(!isset($erreur)) { $dest_fichier = basename($_FILES['file']['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); //vérif if(file_exists($repertoire.$dest_fichier)) echo "<p>Le fichier de destination existe déjà !</p>"; else { // copie du fichier move_uploaded_file($_FILES['file']['tmp_name'], $repertoire.$dest_fichier); echo "<p>".$dest_fichier." envoyé avec succès ! <img src='".$repertoire.$dest_fichier."'></p>"; } } else{ echo "<p>".$erreur."</p>"; } } if($mode=="del") // Supprimer une image { if(!isset($file)) die("<h2>Aucun nom de fichier !</h2></body></html>"); if(!file_exists($repertoire.$file)) die("<h2>Fichier inexistant !</h2></body></html>"); if(isset($confirm)) { if($confirm+10<time()) die("<h2>L'action a expirée...</h2></body></html>"); unlink($repertoire.$file); echo "<h2>Entrée supprimée !</h2>"; } else { echo "<h2>Supression d'une image ?</h2>\n"; echo "<p>Vous êtes sur le point de supprimer l'image '".$file."' qui ressemble à ça: <img src='".$repertoire.$file."'><br>"; echo "<b>Etes-vous sûr de vouloir continuer ?<br><font size=\"5\">"; echo "<a href='".$script_name."?mode=del&file=".$file."&confirm=".time()."'><font color='red'>Oui</font></a> - "; echo "<a href='".$script_name."'><font color='green'>Non</font></a></font></b></p>\n"; } } ?> <h2>Ajout d'images</h2> <form name="form1" method="post" action="<? echo $script_name; ?>"> <p>Copier une image depuis une URL: <input name="url" type="text" id="url" value="http://" size="100"> <input type="submit" name="Submit" value="Copier"> <input name="mode" type="hidden" id="mode" value="copy"> </p> </form> <form action="<? echo $script_name; ?>" method="post" enctype="multipart/form-data" name="form2"> <p>Envoyer une image: <input name="file" type="file" size="100"> <input type="submit" name="Submit" value="Envoyer"> <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> <input name="mode" type="hidden" id="mode" value="upload"> </p> </form>
Voila merci beaucoup.
A voir également:
- Uploads fichier par URL
- Fichier bin - Guide
- Url - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
bonsoir,
essai de rajouter les extensions de tes fichiers à la suite des autres. (ligne a change/modifier:
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
en modifier:
bonne soirée
essai de rajouter les extensions de tes fichiers à la suite des autres. (ligne a change/modifier:
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
en modifier:
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg','zip','rar','avi','flv');
bonne soirée