I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
29. juni 2004 - 12:37#1
Du laver en tabel med følgende felter:
id | fil | hits
Når brugeren trykker på et link, ser det sådan ud: download.php?get=id
download.php henter så den enkelte fil hvor idét er lig med det fra query. Derefter ligger den en til i feltet hits, så du har antalet af downloads.
Men, hvordan henter jeg så noget fra en database, hvis der må ikke være noget før headers?
Synes godt om
Slettet bruger
29. juni 2004 - 13:40#10
Hmm.. du må ikke lave noget der vises på skærmen før. Du kan sagtens hente noget fra databasen og sætte filnavnet i en variabel, og derefter smide dine headers ud.
Kun det der, så vil jeg bagefter sætte resten på, når jeg ved at det virker...
Synes godt om
Slettet bruger
29. juni 2004 - 15:10#14
Hmm... det virkede hos mig, men fandt ud af at filerne ikke kunne åbnes, fordi den ikke kendte størrelsen på filen. Så ilen man hentede var på 0 byte.
Jeg rodet lidt med det, og har lavet så det passer til din beskrivelse. Så følgende skulle kunne klare det :)
<?PHP // Filen der skal hentes. $file_server_path = "chat.zip";
// Hvilket navn filen skal have når den er hentet ned. $file_download_name = "chat.zip";
// Vi skal kende størrelsen på filen vi henter. // Da dine filer ligger i mappen test, åbner vi den. $dir = "/test/";
$handle=opendir($dir); while (($file = readdir($handle))!==false) { if ($file == $file_server_path) { $download_size = filesize("".$dir."/".$file_server_path.""); } } closedir($handle);
// Vi sætter de enkelte headers. header("Content-type: application/x-download"); header("Content-Disposition: attachment; filename=$file_download_name;"); header("Accept-Ranges: bytes"); header("Content-Length: $download_size");
// Læser fra kilden. @readfile("".$dir."".$file_server_path.""); ?>
Er det ikke lidt tosset, at køre alle filerne i biblioteket igennem (while-løkken) bare for at få en fils størrelse? Du har jo allerede defineret både sti og filnavn...
Synes godt om
Slettet bruger
29. juni 2004 - 16:32#16
heh jo, det var egentlig rimelig meget spild af tid. Blot et stykke tid siden jeg sidst havde rodet med opendir og readdir, så brugte blot eksemplet fra manualen.
Men for god ordens skyld, har jeg da rettet det :)
<?PHP // Filen der skal hentes. $file_server_path = "chat.zip";
// Hvilket navn filen skal have når den er hentet ned. $file_download_name = "chat.zip";
// Hvilken mappe filerne ligger i. $dir = "test/";
// Åbner mappen. $handle=opendir($dir);
// Finder størrelsen på filen $download_size = filesize("".$dir."/".$file_server_path."");
// Lukker mappen closedir($handle);
// Vi sætter de enkelte headers. header("Content-type: application/x-download"); header("Content-Disposition: attachment; filename=$file_download_name;"); header("Accept-Ranges: bytes"); header("Content-Length: $download_size");
// Læser fra kilden. @readfile("".$dir."".$file_server_path.""); ?>
Hvilken webserver tester du på? For har lige konkluderet, at når jeg uploader det på mit (rigtige) webhotel funker det, men når jeg bruger min egen lokale Apache-server så er det noget "biks"...
Warning: Cannot modify header information - headers already sent by (output started at */httpdocs/download.php:4) in */httpdocs/download.php on line 9
Warning: Cannot modify header information - headers already sent by (output started at */httpdocs/download.php:4) in */httpdocs/download.php on line 10
Warning: Cannot modify header information - headers already sent by (output started at */httpdocs/download.php:4) in */httpdocs/download.php on line 11
Warning: Cannot modify header information - headers already sent by (output started at */httpdocs/download.php:4) in */httpdocs/download.php on line 12
Warning: Cannot modify header information - headers already sent by (output started at */httpdocs/download.php:4) in */httpdocs/download.php on line 13
MZÿÿ¸@º´ Í!¸LÍ!This program cannot be run in DOS mode. $÷„”³åúS³åúS³åúSÈùöSºåúSÑúéS¿åúSÍÇæS°åúS³åûSÀåúS€ÇßSºåúSÍÇçS²åúS[úñSâäúSOÅèS²åúS0ùôSûåúS[úðS+åúS ãüS²åúSRich³åúSPELè$<à À0X÷Ð@.0ŒÈð-` ÒPIÐø.textÓ±À `.rdata.ÇÐÐÐ@@.dataØ3 À @À.tls à-`!@À.rsrc` ð-p!@@hj膽YYÃÌU‹ìƒì ‰Mà¾t«a…Àt3Àé$ƒ}ujjjj‹Màèt>…Àu3Àéj‹M Q‹Màèû‰Eüƒ}üt‹Uà¿‚q9Eüu3ÀéÖ‹Mà¿QNRj¹ðdè%߉EðÇEøƒ}ðuiÇEìÇEèj2j‹MàèU‰EôjEèPMìQ‹UôRj‹MàèÜD‰Eäƒ}
Det er det der kommer frem, når jeg bruger begge de to koder, som Jaw og Cypermann har forslået...
hmm, nah det ved jeg nu ikke lige... det virker fint her... :/
Var det hos dig det faktisk virkede nu?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.