Door
Andreas Krale
op 04-02-2016 15:41
gewijzigd op 04-02-2016 15:42
3.333 views
Heb nog een klein probleempje
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.
Zie niet wat er verkeerd is omdat de naam er wel staat.
Dit script gebruik ik voor zippen en download.
<?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);
?>
Dat kan ik mij heel goed voorstellen, mijn excuus voor de verwarring.
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.
[size=xsmall]Toevoeging op 05/02/2016 09:21:58:[/size]
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"
<?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);
?>
Nu krijg ik ".zip" als zip bestands-naam terwijl nu de 2e regel met de naam "pomp1" zou moeten lezen.
$dtime = date("d-m-Y");
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = array('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);
Ik heb onderstaande pagina geraadpleegd om de fout te ontdekken en met name naar de "functie" gekeken, maar ik begrijp het even niet meer. 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.
// 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";