Newsgroup: it.comp.www.php
Titolo: Help per salvataggio file

Ciao!
Setec Astronomy mi ha gentilmente postato lo script per effettuare il
salvataggio di un immagine senza dover passare per il tasto destro del
mouse -> salva immagine
Lo script a Setec Astronomy funziona, come mi ha dimostrato on line sia su
Apache che su Linux, ma a me non funziona.
Il file viene salvato, ma l'immagine vista con Acdsee è tutta nera con il
visualizatore img di Winzozz, mi da il messaggio "disegno immagine non
riuscita" ed il peso non è lo stesso dell'immagine da salvare.
Qualcuno mi aiuta a scoprire perchè io non riesco a salvare l'immagine?
Questo è lo script se lo provate e mi fate sapere il risultato che avete
ottenuto mi fate una grande cortesia.
Ciao
<?php
function loadfromfile ($filename = "")
{ return join ('', file ($filename)); }
if (isset ($_GET["file"]))
{
$parse_url = parse_url ($_GET["file"]);
$pos = strrpos ($parse_url["path"], "/");
if ($pos)
{ $parse_url["path"] = substr($parse_url["path"], $pos + 1); }
$filename = $parse_url["path"];
$str_file = loadfromfile ($_GET["file"]);
$filelen = strlen ($str_file);
header( "Content-Type: image/jpg" );
header( "Accept-Ranges: bytes" );
header( "Content-Length: " . $filelen );
header( "Content-Disposition: attachment; filename=" . $filename .
";" );
print ($str_file);
}
else
{
$url ="
http://www.google.com/images/web_logo_left.gif
";
print ("<a href='down.php?file=" . urlencode ($url) .
"'>Download</a>");
}
?>


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

 ?
Quello non č un problema in quanto il modulo č riservato ad utenti giŕ
registrati ed il download č permesso solo a loro.
Che faccio?

 	$str_file = file_get_contents($_GET['file']);
La funzione file diventa binary safe dalla versione 4.3.0 esattamente
quando e' stata introdotta la funzione file_get_contents.
-- 
I'am what I'am, I do what I can

 mouse -> salva immagine
Questo dovrebbe funzionare anche su PHP4 < 4.3.0
<?php
	function loadfromurl ($url = "")
	{ 
		$parse_url = parse_url ($url);
		$buffer = "";
		$fp = fsockopen($parse_url["host"], 80, $errno, $errstr, $timeout =
30);
		if($fp)
		{
		   fputs ($fp, "GET " . $parse_url["path"] . " HTTP/1.0\r\nHost: " .
$parse_url["host"] . "\r\n\r\n");
			while (!feof($fp)) 
			{ $buffer = $buffer . fgets ($fp, 4096); } 
			fclose($fp); 
		}
		return trim (strstr ( $buffer, "\r\n\r\n"));
	}
 
	if (isset ($_GET["file"]))
	{
		$parse_url = parse_url ($_GET["file"]);
		$pos = strrpos ($parse_url["path"], "/");
		if ($pos)
		{ $filename = substr($parse_url["path"], $pos + 1); }
		else
		{ $filename = $parse_url["path"]; }
 
		$str_file = loadfromurl ($_GET["file"]);
		$filelen = strlen ($str_file);
		header( "Content-Type: image/jpg" );
		header( "Accept-Ranges: bytes" );
		header( "Content-Length: " . $filelen );
		header( "Content-Disposition: attachment; filename=" . $filename .
		";" );
		print ($str_file);
	}
	else
	{
		$url ="
http://www.google.com/images/web_logo_left.gif
";
		print ("<a href='down.php?file=" . urlencode ($url) .
		"'>Download</a>");
	}
?>


 Questo dovrebbe funzionare anche su PHP4 < 4.3.0
Ciao Setec Astronomy io ho PHP 4.1.2 :-(

Master wrote:

Prova la funzione che ho postato, dovrebbe funzionare anche con la tua
versione di PHP.



Niente Setec Astronomy
non mi funziona sempre per lo stesso problema!
Non č un errore mio, perchč ho ovviato *per ora* il problema inviando lo
sfondo come attachment via email e quello funziona benissimo.
Piuttosto che niente mi va bene anche cosě!
Perň rimango basito di fronte al fatto che sul test che mi hai fatto fare
ieri, funzionava alla grande e non mi spiego il perchč.
Se ti viene in mente qualcosa postalo che lo provo.
Ancora grazie
Master