Pregunta

Estoy intentando crear una página para su uso personal solo. Lo que quiero hacer es, crear un sistema a través del cual puedo descargar las imágenes en el disco duro local, directamente, proporcionando el enlace a través de un localhost como WAMP. La razón por la que estoy tratando de hacer es, quiero que las imágenes se clasifican automáticamente en mi disco duro. Mi campo de formulario será algo como esto

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

Ahora, en el 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....

Me refiero a mi enfoque es erróneo. ¿Cómo puedo lograr algo como esto?

Error

Warning: copy(images/image.jpg) [function.copy]: failed to open stream: No such file or directory in
¿Fue útil?

Solución 2

Ok, he usado rizo en lugar de lograr lo que estoy esperando. Aquí está la pieza de código

$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);

Otros consejos

Si allow_url_fopen es cierto en el php.ini y su PHPVERSION es> = 4.3.0 su código debería funcionar.

Puede descargar por primera vez a partir del documento script PHP desde la URL especificada, a continuación, dar http-cliente enlace para descargar el archivo almacenado localmente. o el contenido del documento sometido a flujo de salida:

 $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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top