Bestand verwijderen na downloaden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Mathijs M

Mathijs M

04/01/2008 15:10:00
Quote Anchor link
Ik heb op mijn site een script staan, dat ervoor zorgt dat er automatisch een .zip bestand gemaakt wordt als iemand op een knop drukt.
Omdat ik ISS gebruik als webserver gebruik kan ik geen .htaccess gebruiken, en het bestand dus niet beveiligen met mijn php login script. Daarom zocht ik een script dat ervoor zorgt dat als het bestand is gedownload, het automatisch verwijderd wordt.
Ik heb heel Google al afgezocht maar ik kon niks vinden.
Wie kan mij helpen?

Mathijs
Gewijzigd op 01/01/1970 01:00:00 door Mathijs M
 
PHP hulp

PHP hulp

14/05/2024 06:52:22
 
Joren de Wit

Joren de Wit

04/01/2008 15:17:00
Quote Anchor link
Is het geen optie om het bestand nooit op te slaan en gewoon direct als download aan te bieden?
 
Mathijs M

Mathijs M

04/01/2008 15:24:00
Quote Anchor link
Als het met de manier waarop ik het bestand maak gaat, dan zou het een hele goede oplossing zijn:
http://www.sitemasters.be/?pagina=tutorials/tutorials&id=436&cat=4
Zou je mij een simpel voorbeeld kunnen geven van een code?

Mathijs
Gewijzigd op 01/01/1970 01:00:00 door Mathijs M
 
Joren de Wit

Joren de Wit

04/01/2008 15:27:00
Quote Anchor link
Als het script dat je nu gebruikt het bestand al opslaat zou je dat ook zo kunnen laten. Breidt het script dan uit met:

PHP Downloadscript

En gooi het aangemaakte bestand na pushen van de download direct weer weg...
 
Mathijs M

Mathijs M

05/01/2008 20:55:00
Quote Anchor link
Ik heb nu de volgende code:

formulier.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd
ob_start();
session_start();
include("../auth.php");
checkAuth();
// Tot hier dus  
?>

<head>
<title>Downloaden...</title>
</head>
<body>
Klik hieronder om te downloaden
<FORM METHOD="post" action="zip.php">
  <INPUT TYPE="submit" VALUE="Download">
</FORM>
</body>


zip.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd
ob_start();
session_start();
include("../auth.php");
checkAuth();
// Tot hier dus  

require_once("pclzip.lib.php"); // Lees de class in

$zip = new PclZip("website.zip");
if($zip->create("../../../../informatica") == 0)
  die("Error : " . $zip->errorInfo(true));
        header ( "Location: download.php" );
?>


download.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd
ob_start();
session_start();
include("../auth.php");
checkAuth();
// Tot hier dus  
$filename = 'website.zip';
            $filename = realpath($filename);

            if (!file_exists($filename)) {
                die("NO FILE HERE");
            }


            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Cache-Control: private",false);
            header("Content-Type: application/zip");
            header("Content-Disposition: attachment; filename=\"".basename($filename)."\";");
            header("Content-Transfer-Encoding: binary");
            header("Content-Length: ".@filesize($filename));
            set_time_limit(0);
            @
readfile("$filename") or die("File not found.");
            header ( "Location: verwijder.php" ); ?>


verwijderen.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
require_once("pclzip.lib.php"); // Lees de class in

$zip = delete(PCLZIP_OPT_BY_NAME,"website.zip");
if($zip->delete() == 0)
  die("Error : " . $zip->errorInfo(true));
header ( "Location: ../index.php" );
?>


Het formuliertje, het zippen en het verwijderen werkt zoals het moet, maar als ik wil downloaden wacht hij niet totdat het downloaden klaar is en downloadt hij dus niets. Wie weet hoe ik dit kan oplossen?

Mathijs

EDIT 05-01-2008 21:18
Download.php gewijzigd
Gewijzigd op 01/01/1970 01:00:00 door Mathijs M
 
Joren de Wit

Joren de Wit

05/01/2008 21:00:00
Quote Anchor link
Ik mis in download.php de regel waar je de inhoud van het bestand leest en naar de browser stuurt? Dus bijvoorbeeld de functie readfile()...
 
Mathijs M

Mathijs M

05/01/2008 21:22:00
Quote Anchor link
Ik heb download.php nu gewijzigd naar de bovenstaande code, maar nu word ik niet doorgestuurd naar verwijderen.php, verder werkt de code wel goed.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.