Torna indietro   Serverplan Forum > Risorse per Webmaster > PHP

Rispondi
 
LinkBack Strumenti discussione Modalità visualizzazione
  #1 (permalink)  
Vecchio 08-06-2004, 13.38.50
Member
 
Data registrazione: 26-10-2003
Residenza: ://localhost/
Messaggi: 68
boolbo is on a distinguished road
Predefinito Forzare il download di files nella finestra di dialogo

Salve a tutti,

Vorrei sapere se qualcuno sa consigliarmi o aiutarmi a trovare uno script PHP che generi la forzatura durante il download di files affinch? l'utente visualizzi la finestra di dialogo "Save as" come accade normalmente per i files .zip

Vorrei che anche scaricando files di tipo JPG, o PDF etc...questi non si aprissero nel brwser come di consueto, ma che all'utente apparisse la finestra di dialogo per poterli scaricare direttamente sull'hard disk....

Qualcuno conosce come fare?
Grazie

PS: Naturalmente uno script gratuito.....
Rispondi citando
  #2 (permalink)  
Vecchio 09-06-2004, 17.48.12
Junior Member
 
Data registrazione: 03-10-2003
Messaggi: 29
fiblan is on a distinguished road
Predefinito

Basta aggiungere oltre al content-type... etc anche l'header del Content-Disposition...

Codice:
...
header('Content-Disposition: attachment; filename=".$nomefilechevuoisiamostrato."');
readfile($percorsoenomefilechevuoisiasalvato);
$nomefilechevuoisiamostrato e $percorsoenomefilechevuoisiasalvato non necessariamente devono essere uguali.. in questo modo puoi nascondere la locazione reale del file... ed evitare magari deep-link !
Spero sia stato utile!
Rispondi citando
  #3 (permalink)  
Vecchio 11-06-2004, 09.38.28
Member
 
Data registrazione: 26-10-2003
Residenza: ://localhost/
Messaggi: 68
boolbo is on a distinguished road
Predefinito

Questo header ? possibile inserirlo in uno script per download gi? precomipilato? Voglio dire ho gi? uno script precompilato per il download di files....che gi? nasconde la path del file da scaricare, devo solo "forzare" il download attraverso la finestra di dialogo, per evitare che l'immagine (ho soprattutto sfondi per desktop e foto) si apra nel browser...perch? non voglio metterla sotto ZIP dato che non tutti potrebbero averlo e/o sapere come si usa.
Rispondi citando
  #4 (permalink)  
Vecchio 12-06-2004, 01.25.18
Junior Member
 
Data registrazione: 03-10-2003
Messaggi: 29
fiblan is on a distinguished road
Predefinito

L'header deve essere inviato prima di qualsiasi altro output della pagina, teoricamente potrebbe essere adattato a qualsiasi "script precompilato" come dici tu! Non hoi idea a che script ti riferisci! Prova!
Rispondi citando
  #5 (permalink)  
Vecchio 12-06-2004, 10.36.35
Member
 
Data registrazione: 26-10-2003
Residenza: ://localhost/
Messaggi: 68
boolbo is on a distinguished road
Predefinito

Lo script ? questo: DownloadPRO 1.0 ? uno script free e il sito ? questo:
http://www.explodingpanda.com/downloadpro.php

Da qui si pu? scaricare lo ZIP completo:
http://www.explodingpanda.com/download.php?file=3

Ora vedo se mi ? possibile postare qui i codici PHP perch? son pi? di un file. A dir la verit? ho anche uno script di un singolo file ma non riesco a farlo funzionare e l'autore non mi da supporto.

Questo credo sia il docice principale...presente nel file "download.php":

Codice:
<?php

include('db.php');

if (isset($file)){

	dbConnect();
	$sql = "select filename from dlcount";
	$result = mysql_query($sql);
	$rows = mysql_num_rows($result);
	
	for ($x=0;$x<$rows;$x++) {
	$urlarray[$x] = mysql_result($result,$x);
	}
	
	$request = $urlarray[$file];
	
	if (!$request) {
		echo ("Error on url string");
	}
	else {
		header("Location: $request"); 
	}
	
	$query = "UPDATE dlcount SET totalhits=totalhits+1 WHERE FileCode = $file";
	$result = mysql_query($query);
	if (!$result){ 
		echo("Database Error");
	}
	$datetime = date('d M Y h:i:s a');
	$querystat = "INSERT INTO dlstats SET FileCode='$file', IP='$REMOTE_ADDR', DateTime='$datetime'";
	$resultstat = mysql_query($querystat);
	if (!$result){ 
		echo("Database Error");	
	}
	
}

if (isset($showme)){
	dbConnect();
	$query = "SELECT totalhits FROM dlcount WHERE FileCode = $showme";
	$result = mysql_query($query);
	$hitcount = mysql_result($result,0);
	echo($hitcount);
}
?>

Perch? questi sono i files componenti:

Main Script Files:
Download.php - The basic engine that processes download requests, and counter display requests.
db.php - Contains all configuration, from user/pass, to db details.
downloadpro.php - The admin backend to add, delete and modify fields, and to view stats.
modify.php - This is the engine that parses all new file, edit file, and delete file requests from the admin backend.
displaystat.php - This file parses and formats full download stats into managable pages.
install.php - The database installation script. Run to install, then delete.
restrict.php - This file regulates access to the admin pages.
Rispondi citando
  #6 (permalink)  
Vecchio 12-06-2004, 13.01.27
Junior Member
 
Data registrazione: 03-10-2003
Messaggi: 29
fiblan is on a distinguished road
Predefinito

:shock: lo script che stai utilizzando sinceramente non e' molto bello, anzi...! per altro credo sia abbastanza bacato! e non nasconde assolutamente la locazione!

in ogni caso se proprio lo vuoi utilizzare....
devi inserire gli header che ti dicevo al posto dell'header ("Location ...
e sostituire $percorsoenomefilechevuoisiasalvato con $request!

Ripeto non mi convince per niente! :roll:
Rispondi citando
  #7 (permalink)  
Vecchio 12-06-2004, 15.57.05
Member
 
Data registrazione: 26-10-2003
Residenza: ://localhost/
Messaggi: 68
boolbo is on a distinguished road
Predefinito

Capisco, non sono espertissimo di PHP, hai uno script free migliore da consigliarmi?
Se questo ? bacato non sto ad utilizzarlo mi fido della tua esperienza!
Rispondi citando
  #8 (permalink)  
Vecchio 12-06-2004, 16.19.09
Junior Member
 
Data registrazione: 03-10-2003
Messaggi: 29
fiblan is on a distinguished road
Predefinito

Lo script ha tante cose che non vanno... Quello che mi salta subito all'occhio:
considera register_globals=on e quindi preleva le variabili file, showme direttamente da $file e $showme senza usare $_GET[] o $_POST[] e di default dal php 4.2.0 register_globals e' settato off!
Poi non viene verificato se le varaibili passate sono valori interi, potrei passare di tutto....SQL Injection tanto per intenderci!
Posizione di chiusura di un else errata...

In rete ce ne saranno tantissimi, non ho idea quali consigliarti, in ogni caso sono convinto che la soluzione che stai cercando non sia molto difficile da implementare, quindi perche' non ci provi tu' , poi se vuoi anche in privato posso darti una piccola mano, senza alcun interesse si intende!
Rispondi citando
Rispondi

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Attivato


Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Download con PHP fabiopoli PHP 1 24-04-2007 09.36.04
Finestra informazioni datanet HTML 5 14-10-2004 15.51.28
comando action script per aprire finestra csonia FLASH 1 07-10-2004 13.36.25
download home backup riccardo Pannello di controllo Cpanel - Linux 8 08-10-2003 21.05.25
MI OCCORREBBE LO SCRIPT PER APRIRE UNA NUOVA FINESTRA ganzmax CGI - PERL - SCRIPT 5 03-05-2003 22.34.33


Tutti gli orari sono GMT +1. Adesso sono le 22.51.13.


Powered by vBulletin versione 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.1.0
Traduzione italiana : www.vbulletin.it