Question

Je suis en train de créer une page pour une utilisation personnelle juste. Ce que je veux faire est, de créer un système à travers lequel je peux télécharger des images sur mon disque dur local, directement en fournissant le lien par une localhost comme WAMP. La raison pour laquelle je suis en train de faire est, je veux que les images à trier automatiquement sur mon disque dur. Mon champ de formulaire sera quelque chose comme ceci

<form method="POST" action="process.php">
   <input type="text" name="URL" id="URL" />
   <input type="text" name="category" id="category" />
   <input type="text" name="subcategory" id="category" />
   <input type="submit">
</form>

Maintenant, dans le process.php

//This is just a sample... So please ignore the roughness of the coding

copy($_POST['url'],$_POST['category']."/".$_POST['subcategory']."/somename.jpg");

// If you noticed, the categories and subcategories are actually the name of directory, where I want the picture to go be saved....

Je pense mon approche est erronée. Comment puis-je faire quelque chose comme ça?

Erreur

Warning: copy(images/image.jpg) [function.copy]: failed to open stream: No such file or directory in
Était-ce utile?

La solution 2

Ok, j'ai utilisé à la place boucle pour obtenir ce que je me attends. Voici le morceau de code

$img = $_POST['url'];
$fullpath = $_POST['category']."/".$_POST['subcategory']."/".basename($img);
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);                   
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);

Autres conseils

Si allow_url_fopen est vrai dans le php.ini et votre PHPVERSION est> = 4.3.0 votre code devrait fonctionner.

vous pouvez d'abord télécharger à partir du document de script php depuis l'URL spécifiée, donner lien http-client pour télécharger le fichier stocké localement. ou le contenu du document mis à flux de sortie:

 $cont = file_get_contents($_GET['url']);
  header('Content-Type: application/octet-stream');
  header("Content-Transfer-Encoding: binary ");
  header('Accept-Ranges: bytes');
  header('Content-disposition: attachment; filename=' . $new_file_name));
  echo($cont);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top