Jean-Marc Kiener Posted July 4, 2017 Share Posted July 4, 2017 My app runs as exe or service. I try to show all the content of UniServerModule.FilesFolderURL in a TUniURLFrame: myURLFrame.URL := ExcludeTrailingPathDelimiter( UniSession.URL ) + UniServerModule.FilesFolderURL ; In other words, i try to show http://localhost:8077/files/in the browser. I always get a "Invalid Session or Session timeout". It is possible to set "Directory listing" on for this directory. In general, how to set a directory for simple directory listing in UniServer? example: http://localhost:8077/myOwnDirectory/ Link to comment Share on other sites More sharing options...
neo4a Posted July 4, 2017 Share Posted July 4, 2017 Found this in \FMSoft\Framework\uniGUI\Demos\Touch\PDFView: var FFolder : string; Sr : TSearchRec; begin UnimList1.Items.Clear; FFolder := UniServerModule.FilesFolderPath+'PDFs\'; if SysUtils.FindFirst(FFolder+'*.pdf', faAnyFile, Sr) = 0 then begin repeat if Sr.Attr and faDirectory = 0 then UnimList1.Items.Add(Sr.Name); until SysUtils.FindNext(sr) <> 0; SysUtils.FindClose(sr); end; if UnimList1.Items.Count > 0 then UnimList1.ItemIndex := 0; end; HTH. 1 Link to comment Share on other sites More sharing options...
Jean-Marc Kiener Posted July 5, 2017 Author Share Posted July 5, 2017 Thanks NEO4A. Yes, i came to an similar approach. Do it the UniGui Way ;-). The build-in-HTTPServer seems not to be able to configure a directory for delivering and Browsing. So i did the following ( based on http://www.swissdelphicenter.ch/en/showcode.php?id=400 ) procedure TfrmMain.CreateDocumentTree; procedure GetDirectories(Tree: TUniTreeView; Directory: string; Item: TUniTreeNode; IncludeFiles: Boolean); var SearchRec: TSearchRec; ItemTemp: TUniTreeNode; begin Tree.Items.BeginUpdate; if Directory[Length(Directory)] <> '\' then Directory := Directory + '\'; if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then begin if (SearchRec.Attr and faDirectory > 0) then Item := Tree.Items.AddChild(Item, SearchRec.Name); ItemTemp := Item.Parent; GetDirectories(Tree, Directory + SearchRec.Name, Item, IncludeFiles); Item := ItemTemp; end else if IncludeFiles then if SearchRec.Name[1] <> '.' then Tree.Items.AddChild(Item, SearchRec.Name); until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; Tree.Items.EndUpdate; end; begin treeDocuments.BeginUpdate; treeDocuments.Items.Clear; try GetDirectories(treeDocuments, FDocumentsPath, nil, True); finally treeDocuments.EndUpdate; end; end; procedure TfrmMain.treeDocumentsDblClick(Sender: TObject); var FilePath: string; n: TUniTreeNode; begin n := treeDocuments.Selected; FilePath := n.Text; while n.Parent <> nil do begin n := n.Parent; Filepath := n.Text + '\' + Filepath; end; FilePath := FDocumentsPath + FilePath; if TFile.Exists( FilePath ) then UniSession.SendFile( FilePath ); end; Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now