E 'possibile copiare le immagini dal web al vostro disco rigido?
-
11-10-2019 - |
Domanda
Sto cercando di creare una pagina per l'uso solo personale. Quello che voglio fare è, di creare un sistema attraverso il quale posso scaricare le immagini al mio disco rigido locale, direttamente fornendo il link attraverso un localhost come WAMP. Il motivo per cui sto cercando di fare è, voglio le immagini da ordinati automaticamente sul mio hard disk. Il mio campo modulo sarà qualcosa di simile
<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>
Ora, nel 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....
Sto pensando il mio approccio è sbagliato. Come posso ottenere qualcosa di simile?
Errore
Warning: copy(images/image.jpg) [function.copy]: failed to open stream: No such file or directory in
Soluzione 2
Ok, ho usato ricciolo invece di realizzare ciò che mi aspetto. Ecco il pezzo di codice
$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);
Altri suggerimenti
Se allow_url_fopen
è vero nel php.ini e il vostro PHPVERSION
è> = 4.3.0 il codice dovrebbe funzionare.
è possibile scaricare dal primo php script documento da URL specificato, quindi dare http-client link per scaricare file memorizzato in locale. o contenuto del documento messo a flusso di uscita:
$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);