02. juli 2010 - 16:05Der er
7 kommentarer og 1 løsning
Hvordan downloader man et dokument?
Hej Eksperter
Mine kommende brugere ønsker mulighed for at downloade dokumenter der genereres på serveren. På det punkt er jeg helt novice.
Brugeren skal have adgang til en submit-button "download som Excel"
Siden viser en tabel af diverse data. Med PHPExcel gereres der et Exceldokument af disse data. Dokumentet bliver placeret i mappen C:/..../htdocs/exceldoc/eksempel.xlsx
Hertil fungerer det.
Nu skal data downloades. Den sædvanlige boks med spørgsmålet: Vil du åbne el. gemme denne fil" skal vises. Derudover skal filen eksempel.xlsx i mappen C:/..../htdocs/exceldoc/ slettes så den ikke ligger og fylder op på serveren.
Siden med tabellen skal ikke genindlæses. Den skal fortsat vises som den hele tiden har været.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Slettet bruger
03. juli 2010 - 05:44#1
Så vidt jeg ved, kan du ikke fremtvinge pop-up vinduet der spørger om man vil gemme filen eller åbne den direkte i browseren, det er noget brugeren selv skal opsætte i sin browser.
Derudover syntes jeg personligt det er nemmere at udskrive den genererede kode til excel-dokumentet direkte til brugeren istedet for at gemme det i en .xlsx-fil først og derefter slette den.
Tak - Det løste en del af problemet. Men et andet opstod. Min side med koden hedder 'regnskab.php' Mit dokument skal hede 'fremmoede_2010-03-01_2010-08-31.xlsx' Når jeg kører med Firefox downloades dokumentet til den forudvalgte mappe c:\downloades. Samtidig gemmes filen på serveren og siden regnskab.php indlæses atter. Kører jeg derimod siden i Explorer (som mine kommende brugere), kommer dialogboxen som tilbyder download af filen 'regnskab.xls'. Denne side indeholder den html-kode som regnskab.php genererer, og siden genindlæses ikke.
Min kode ser således ud: $title = "Fremmøde mellem ".$startdate." og ".$enddate; $exceltitle = utf8_encode($title); $objPHPExcel = new PHPExcel(); ... En masse data placeres i objektet $objPHPExcel. ... $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $filename = "fremmoede_2010-03-01_2010-08-31.xlsx"; $objWriter->save(str_replace('.php', '.xlsx',$filename));
Har i et forslag til hvad der går galt i Explorer? Hvordan sletter man med php filen 'C:\SERVER\xampp\htdocs\kortlaeser\fremmoede_2010-03-01_2010-08-31.xlsx'?
Ja - Filen slettes - Godt nok Men den fil der umiddelbart før downloades indeholder intet! Mon ikke at download ikke når at blive afsluttet før unlink udføres? Hvordan kan man forsinke unlink i f.eks. 30 sek?
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.