Frage

Ich versuche, eine Seite nur für den persönlichen Gebrauch zu erstellen. Was ich tun möchte, ist, erstellen Sie ein System, durch das ich Bilder auf meinem lokalen Festplatte herunterladen können, direkt über den Link durch eine Bereitstellung von localhost wie WAMP. Der Grund, warum ich zu tun versuchen, ist, möchte ich die Bilder automatisch auf meiner Festplatte sortiert werden. Mein Formularfeld wird so etwas wie dieses

sein
<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>

Jetzt, in den 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....

ich meinen Ansatz denke, ist falsch. Wie kann ich so etwas wie dies erreichen?

Fehler

Warning: copy(images/image.jpg) [function.copy]: failed to open stream: No such file or directory in
War es hilfreich?

Lösung 2

Ok, habe ich curl statt zu erreichen, was ich erwarte. Hier ist das Stück 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);

Andere Tipps

Wenn allow_url_fopen wahr ist in der php.ini und Ihre PHPVERSION ist> = 4.3.0 Code sollte funktionieren.

Sie können zuerst herunterladen von PHP-Skript Dokument von den angegebenen URL, dann geben http-Client-Verbindung lokal gespeicherte Datei zum Download bereit. oder setzen Dokumentinhalt Ausgangsstrom:

 $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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top