2015-11-25 1 views
2

Je veux télécharger 1000 images en un seul clic via l'URL. J'ai 1000 URL d'images stockées dans la base de données MYSQL.Téléchargement de 1000 images via l'URL en utilisant PHP

Alors s'il vous plaît quelqu'un s'il vous plaît me donner un code PHP pour télécharger que 1000 images via URL via la base de données mysql.

Actuellement, je suis en utilisant le code ci-dessous: - une image télécharger Il par clic en affichant l'URL de l'image ...

Mais je veux télécharger l'image 1000 en un seul clic en obtenant des URL de databse

$result = mysql_query("SELECT * FROM thumb") or die(mysql_error()); 

// keeps getting the next row until there are no more to get 
while($row = mysql_fetch_array($result)) { 

echo "<div>"; 
$oid = $row['tid']; 
$th= $row['q']; 

echo "</div>"; 

$thi = $th; 
$get_url = $post["url"]; 
$url = trim('$get_url'); 

if($url){ 
    $file = fopen($url,"rb"); 
    $directory = "thumbnail/"; 
    $valid_exts = array("php","jpeg","gif","png","doc","docx","jpg","html","asp","xml","JPEG","bmp"); 
    $ext = end(explode(".",strtolower(basename($url)))); 
    if(in_array($ext,$valid_exts)){ 

     $filename = "$oid.$ext"; 
     $newfile = fopen($directory . $filename, "wb"); 
     if($newfile){ 
      while(!feof($file)){ 
       fwrite($newfile,fread($file,1024 * 8),1024 * 8); 
      } 
      echo 'File uploaded successfully'; 
      echo '**$$**'.$filename; 
     } 
     else{ 
      echo 'File does not exists'; 
     } 
    } 
    else{ 
     echo 'Invalid URL'; 
    } 
} 
else{ 
    echo 'Please enter the URL'; 
} 

} 

Merci beaucoup .... ...

+0

je pourrais noter qu'il est pas une bonne pratique pour stocker des images dans une base de données. – cybermonkey

+0

Ce n'est pas l'image, c'est l'image URL et le téléchargement dans le gestionnaire de fichiers –

Répondre

3

Le code que vous avez est pas à jour et beaucoup plus complecated que nécessaire. Ce n'est pas un site où vous obtenez du code parce que vous le demandez, c'est un environnement d'apprentissage.

Je vais vous donner un exemple sur lequel vous pouvez continuer:

// Select the images (those we haven't done yet): 
$sItems = mysql_query("SELECT id,url FROM thumb WHERE imported=0") or die(mysql_error()); 
// Loop through them: 
while($fItems = mysql_fetch_assoc($sItems)){ 
    $imgSource = file_get_contents($fItems['url']); // get the image 
    // Check if it didn't go wrong: 
    if($imgSource!==false){ 
     // Which directory to put the file in: 
     $newLocation = $_SERVER['DOCUMENT_ROOT']."/Location/to/dir/"; 
     // The name of the file: 
     $newFilename = basename($fItems['url'], $imgSource); 

     // Save on your server: 
     file_put_content($newLocation.$newFilename); 
    } 
    // Update the row in the DB. If something goes wrong, you don't have to do all of them again: 
    mysql_query("UPDATE thumb SET imported=1 WHERE id=".$fItems['id']." LIMIT 1") or die(mysql_error()); 
} 

fonctions pertinentes:
file_get_contents() - Obtenez le contenu de l'image
file_put_contents() - Placez le contenu donné dans cette fonction dans un fichier spécifié
basename() - étant donné une URL, il vous donne le nom de fichier seulement

Important:

  • Vous utilisez mysql_query. Ceci est dépréciée (ne devrait plus être utilisé), l'utilisation AOP ou mysqli au lieu
  • Je vous suggère de faire ce travail à partir de la ligne de commande et d'ajouter un écho après la mise à jour afin que vous puissiez suivre les progrès
+0

Mais comment le renommer –

+0

Mis à jour la partie dans la boucle while, cela devrait suffire – Martijn

+0

Exemple ???? .......... Plzzzzzzx .. –