Met "echo" zie ik het wel maar bij $test niet
Om de gegevens uit mijn microcontroller te halen gebruik ik een script om de bestanden in te pakken en het dan gelijk kan downloaden dat werkt prima
Nu wil ik graag het zip bestand voorzien van datum en naam, met datum lukt mij maar omdat ik de naam voor het bestand uit een text file moet halen lukt het mij op een of andere manier niet
Met dit krijg ik op mijn site netjes de naam te zien.
Als ik het volgende doe.. krijg ik geen zip file met de naam
Zie niet wat er verkeerd is omdat de naam er wel staat.
Dit script gebruik ik voor zippen en download.
Code (php)
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
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$dtime = date("d-m-Y");
$regels = file('info.txt');
$name= ($regels[1], 0, 20);// hier staat de naam "pomp1"
# define file array
$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$dtime.zip);
header('Content-type: application/zip');
readfile($tmp_file);
?>
$dtime = date("d-m-Y");
$regels = file('info.txt');
$name= ($regels[1], 0, 20);// hier staat de naam "pomp1"
# define file array
$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$dtime.zip);
header('Content-type: application/zip');
readfile($tmp_file);
?>
Gewijzigd op 04/02/2016 15:42:57 door Andreas Krale
In het eerste codeblokje 'echo' je iets. In het 2e codeblokje vergeet je 'substr' en 'echo'.
Je mist je substr()-functie.
Hen dit aan gepast en gekeken of ik nu de zip file met de naam krijg, helaas niet.
Code (php)
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
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$dtime = date("d-m-Y");
$regels = file('info.txt');
$name= substr($regels[1], 0, 20);// hier staat de naam "pomp1"
# define file array
$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.zip);
header('Content-type: application/zip');
readfile($tmp_file);
?>
$dtime = date("d-m-Y");
$regels = file('info.txt');
$name= substr($regels[1], 0, 20);// hier staat de naam "pomp1"
# define file array
$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.zip);
header('Content-type: application/zip');
readfile($tmp_file);
?>
Gewijzigd op 04/02/2016 18:01:20 door Andreas Krale
zip hoort op lijn 30 tussen quotes.
Met de $dtime gaat het inderdaad beter maar met $name krijg ik nog steeds de zip naam van de pagina "logzip.php" zoals op de screenshot in de eerdere post.
Hoe zien je header()'s er nu uit? En kan je je screenshot ook openbaar zetten? Of uploaden bij bijv. Tinypic.com?
- Ariën - op 04/02/2016 16:36:01:
Hoe zien je header()'s er nu uit?
Deze vraag snap ik even niet
Screenshot is geupload.
De header()' s staan in je code, onderaan.
Had al wel met de scherm grote rekening gehouden maar dus niet met een zip download.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.".zip");
header('Content-type: application/zip');
readfile($tmp_file);
?>
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.".zip");
header('Content-type: application/zip');
readfile($tmp_file);
?>
Ik snap je niet echt?
Waar ik mee bezig ben is een home project met een microcontroller die tevens door in dit geval kan worden uitgelezen en gedeeltelijk worden bestuurd door een tablet.
Dus ik maak het scherm zo groot dat het beeld vullend is op een tablet, dit is allemaal klaar.
Nu terug kommen op het zippen en downloaden gisterenavond heb is dus alles voor het eerst op de SD-kaart van de microcontroller gezet en alles ging goed kan bijna alles doen wat ik graag wil.
Toe ik het zippen en downloaden wilde gaan doen ging het verkeerd maar om een lang verhaal kort te maken het bleek dus dat ik er een hoofdletter had staan wat niet moest en daar keek ik steeds overheen maar dat is nu opgelost en dat werkt ook.
Maar wat ik nog steeds niet voor elkaar heb is de naam en datum voor het zip bestand.
Toevoeging op 05/02/2016 09:21:58:
Ben zelf ook een stukje verder gekomen, heb er een "$fopen" op het bestand te open en te lezen ingebouwd
Het stomste is nu dat de 2e letter van "info.txt" als naam word genomen hoe die daar aankomt "geen idee" maar de zip file krijgt dus de naam "n.zip"
Code (php)
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
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$dtime = date("d-m-Y");
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = "info.txt";
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
//lees naam uit "pomp1"
$name= substr($file[1], 0, 20);
// sluit het bestand weer af
fclose($fopen);
//lees naam uit "pomp1"
# define file array
$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.".zip");
header('Content-type: application/zip');
readfile($tmp_file);
?>
$dtime = date("d-m-Y");
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = "info.txt";
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
//lees naam uit "pomp1"
$name= substr($file[1], 0, 20);
// sluit het bestand weer af
fclose($fopen);
//lees naam uit "pomp1"
# define file array
$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.".zip");
header('Content-type: application/zip');
readfile($tmp_file);
?>
$file bevat nu een string, en geen array van de file()-functie, die elke regel in een element van een array zet.
Nu krijg ik ".zip" als zip bestands-naam terwijl nu de 2e regel met de naam "pomp1" zou moeten lezen.
Het eerste element van een array is niet [1], maar [0]...
Klopt Willem, Maar de naam die ik moet hebben staat op de 2e regel.
Dat is wat je precies wilt!
Ik gebruik toch "file"
Maar niet als functie, in de laatste code.
Andreas Krale op 05/02/2016 11:04:03:
Klopt Willem, Maar de naam die ik moet hebben staat op de 2e regel.
lol, $file is een array met 1 element. Dus $file[1] bestaat niet.
Dan probeer je een file te openen met fopen met een array als input.
Misschien moet je eens wat documentatie gaan lezen, zodat je weet wat deze functies doen...
Gewijzigd op 05/02/2016 12:28:44 door Randy vsf
http://www.phptuts.nl/view/39/7/ (van deze site heb ik veel van geleerd)
Deze code heb ik hier op de site gevonden en dus gebruikt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = "test.txt";
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
// haal de tekst eruit
$data = fgets($fopen, 4096);
// sluit het bestand weer af
fclose($fopen);
// weergeef wat in $data staat
echo "$data";
$file = "test.txt";
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
// haal de tekst eruit
$data = fgets($fopen, 4096);
// sluit het bestand weer af
fclose($fopen);
// weergeef wat in $data staat
echo "$data";