File Manager

TsgcHTMLComponent_FileManager: web portalları için sunucuda oluşturulan bir dosya yöneticisi. Kullanıcılar klasörlere göz atar, dosyaları önizler, yükler, indirir ve düzenler; sunucu depolamaya dokunmadan önce her isteği izinlere, dosya kurallarına ve kendi rol denetimlerinize göre doğrular, Delphi, C++ Builder ve .NET ile.

TsgcHTMLComponent_FileManager

RootFolder ayarlayın veya bir Provider atayın, Permissions içinde işlemlere izin verin ve oluşturun. Her tıklama durumsuz bir sunucu olayı gönderir, her indirme veya önizleme imzalı bir bağlantıdır ve OnBeforeOperation yine de tek bir işlemi reddedebilir.

Bileşen sınıfı

TsgcHTMLComponent_FileManager, üzerinde çalıştığı depolama için TsgcHTMLFileManagerProvider ile

İşler

Bir araç çubuğu, klasör ağacı, yol çubuğu, ayrıntı veya küçük resim listesi, önizlemeli ayrıntı bölmesi, durum çubuğu, bağlam menüsü ve yükleme paneli; gömülü Bootstrap Icons ile Bootstrap 5 içinde ve CDN olmadan

Diller

Delphi, C++ Builder, .NET

Bir klasöre yönlendirin, işlemlere izin verin, rolleri denetleyin

Permissions varsayılan olarak yalnızca indirmeye izin verir, bu yüzden kullanıcılarınızın yapabileceklerine izin verin. OnBeforeOperation yerleşik denetimlerden sonra ve depolamadan önce, isteğin işlemi, yolları ve oturumuyla çalışır.

uses
  sgcHTML_Component_FileManager;

// Bir kez oluşturulur: kendi sunucu olaylarını ve dosya bağlantılarını yanıtlar
oFM := TsgcHTMLComponent_FileManager.Create(Self);
oFM.Name := 'fmDocs';
oFM.RootFolder := 'C:\Portal\Documents';
oFM.RootCaption := 'Documents';
oFM.Permissions := [fmpCreateFolder, fmpUpload, fmpDownload, fmpRename,
  fmpMove, fmpCopy];
oFM.AllowedExtensions := '.pdf;.docx;.xlsx;.png;.jpg;.txt';
oFM.MaxFileSize := 20 * 1024 * 1024;
oFM.HTMXEngine := HTMXEngine1;
oFM.OnBeforeOperation := FileManagerBeforeOperation;
Result := oFM.HTML;

// Kullanıcı başına roller: anonim olduğunda aArgs.Session nil olur
procedure TForm1.FileManagerBeforeOperation(Sender: TObject;
  const aOperation: TsgcHTMLFileManagerOperation;
  const aArgs: TsgcHTMLFileManagerOperationArgs; var aAccept: Boolean;
  var aErrorMessage: string);
begin
  // görüntüleyiciler ve anonim kullanıcılar yalnızca okur
  if (aArgs.Session = nil) or not (aArgs.Session.HasRole('admin') or
    aArgs.Session.HasRole('editor')) then
    aAccept := aOperation in [fmoList, fmoSearch, fmoDownload, fmoPreview]
  // düzenleyiciler asla silmez
  else if not aArgs.Session.HasRole('admin') then
    aAccept := aOperation <> fmoDelete;
  if not aAccept then
    aErrorMessage := 'Your role does not allow this operation.';
end;
@* Pages/Documents.cshtml: motor ve ad başına bir dosya yöneticisi *@
@model DocumentsModel

<sgc-file-manager name="fmDocs" root-folder="C:\Portal\Documents" root-caption="Documents"
                  permissions="createfolder,upload,download,rename,move,copy"
                  allowed-extensions=".pdf;.docx;.xlsx;.png;.jpg;.txt" max-file-size="20971520"
                  live-sync="true" on-get-permissions="Model.GetPermissions"
                  on-before-operation="Model.CheckAccess" on-after-operation="Model.Audit" />
using esegece.sgcWebSockets;

var fm = new TsgcHTMLComponent_FileManager();
fm.Name = "fmDocs";
fm.RootFolder = @"C:\Portal\Documents";
fm.RootCaption = "Documents";
fm.Permissions = TsgcHTMLFileManagerPermissions.fmpCreateFolder |
    TsgcHTMLFileManagerPermissions.fmpUpload | TsgcHTMLFileManagerPermissions.fmpDownload |
    TsgcHTMLFileManagerPermissions.fmpRename | TsgcHTMLFileManagerPermissions.fmpMove |
    TsgcHTMLFileManagerPermissions.fmpCopy;
fm.AllowedExtensions = ".pdf;.docx;.xlsx;.png;.jpg;.txt";
fm.MaxFileSize = 20L * 1024 * 1024;
fm.HTMXEngine = htmxEngine;
fm.OnGetPermissions += GetPermissions;
string html = fm.HTML;

// Her kullanıcı rolünün izinlerini alır
public void GetPermissions(object sender, TsgcHTMLFileManagerOperationArgs args,
    ref TsgcHTMLFileManagerPermissions permissions)
{
    if (args.Session != null && args.Session.Roles.Contains("admin"))
        permissions |= TsgcHTMLFileManagerPermissions.fmpDelete;
}

Kullanıcılarınızın elde ettikleri

Masaüstünden zaten tanıdıkları dosya yöneticisi, tarayıcıda, her işlem sunucunuz tarafından denetlenerek.

İki görünüm ve bir klasör ağacı

Sıralanabilir sütunlu (ad, boyut, değiştirilme, tür) bir ayrıntı görünümü ve görüntü önizlemeli bir küçük resim görünümü. Klasör ağacı isteğe bağlı yüklenir, TreeView'ın klavye desteği ve rolleriyle; yanında yol çubuğu, görünüm düğmesi, yenile ve durum çubuğu bulunur.

Arama

Arama kutusu geçerli klasörü filtreler ve Enter alt klasörleri sunucuda arar. Eşleşmeler bir klasör sütunuyla, en çok MaxSearchResults öğeye kadar gösterilir.

Önizleme

Ayrıntı bölmesi görüntüleri, PDFViewer'ın gömülü pdf.js'iyle PDF dosyalarını ve metin dosyalarını önizler; öğenin özellikleri, bir Aç veya İndir düğmesi ve OnItemDetails ile kendi HTML'iniz de gösterilir.

Dosyaları düzenleyin

Yeni klasör, yükleme, indirme, yeniden adlandırma, silme, kesme, kopyalama ve yapıştırma, her biri yalnızca izin verildiğinde. Öğeleri taşımak için listenin, ağacın veya yol çubuğunun bir klasörüne sürükleyin, kopyalamak için Ctrl veya Alt ile, ya da Buraya taşı veya Buraya kopyala seçmek için Shift ile. Seçilen birkaç dosya art arda indirilir.

Parçalı yüklemeler

TsgcHTMLComponent_FileUpload protokolüyle parçalı ve sürdürülebilir yüklemeler: bir yükleme düğmesi, masaüstünden bir katmana bırakılan dosyalar ve her dosyanın ilerlemesini gösteren bir yükleme paneli. Zaten var olan bir ad name (2).ext olur.

Bağlam menüsü

Sağ tıklama, Shift+F10 veya Menü tuşu, aynı komutları ve bazı dosya türleriyle sınırlanabilen CustomCommands komutlarınızı içeren bir bağlam menüsü açar.

Duyarlı ve erişilebilir

768 pikselin altında ağaç bir offcanvas paneline dönüşür ve ayrıntı bölmesi listenin altına iner. Bootstrap değişkenleri üzerinden koyu mod, sağdan sola düzenler, ARIA rolleri ve kibar bir canlı bölge.

17 dil

Dosya yöneticisinin her metni, kitaplığın 17 dildeki yerel ayarından, sgcHTMLDefaultLocale, gelir ve başarısız bir işlem hatasının yerelleştirilmiş metnini gösterir.

Temel özellikler, yöntemler & olaylar

En sık başvuracağınız üyeler.

İzinler ve roller

Permissions kullanıcının çalıştırabileceği işlemleri belirler, varsayılan olarak yalnızca fmpDownload. OnGetPermissions her kullanıcıya veya her isteğe rolünün izinlerini verir ve OnBeforeOperation yine de tek bir işlemi, örneğin klasöre göre, reddedebilir. Reddedilen bir işlem aErrorMessage değerini bir toast içinde gösterir.

Varsayılan olarak güvenli

Her istek sunucuda yeniden doğrulanır: yollar, adlar, Permissions, AllowedExtensions, MaxFileSize ve gizli dosyalar (ShowHiddenFiles). Bilinmeyen bir işlem veya 1000'den fazla öğe gibi hatalı biçimli bir istek 400 durumunu döndürür.

İmzalı bağlantılar

İndirmeler, önizlemeler ve küçük resimler, GetFileURL tarafından HMAC-SHA256 ile imzalanan, yola, oturuma ve bir son kullanma süresine (TokenLifetime, varsayılan olarak 300 saniye) bağlı bağlantıların GET istekleridir. Motor dosyayı sağlayıcıdan akış olarak iletir ve asla tamamını belleğe yüklemez.

Paylaşım bağlantıları

GetShareURL, bir oturuma bağlı olmayan imzalı bir indirme bağlantısı yazar, böylece hesabı olmayan kişiler bağlantı süresi dolana kadar dosyayı indirebilir.

Her depolama

Yerleşik sağlayıcı yerel dosya sisteminin bir klasörünü, RootFolder, gösterir. Bir veritabanı, bulut deposu veya arşiv, Provider özelliğine atanmış bir TsgcHTMLFileManagerProvider türevidir. Bir sağlayıcının aldığı her yol göreli, / ile ayrılmış ve zaten doğrulanmıştır.

Özel komutlar

CustomCommands, imzala, paylaş veya dönüştür gibi kendi eylemlerinizi araç çubuğuna, bağlam menüsüne veya her ikisine ekler, bazı dosya türleri için de olabilir. Bunları OnCommand yanıtlar.

Denetim ve canlı eşitleme

OnAfterOperation başarılı her işlemden sonra bir denetim izini beslemek için, OnError ise bir işlem başarısız olduğunda tetiklenir. LiveSync ile bir klasörü gösteren her tarayıcı, başka bir kullanıcı onu değiştirdiğinde kendini yeniler.

Durumsuz sunucu olayı

Her eylem fm sunucu olayını HTMX motorunun bileşen olayları uç noktasına, CSRF üst bilgisiyle, veya ActionURL adresine gönderir. Bileşen istekler arasında durum tutmaz: isteği doğrular, Execute ile çalıştırır ve hx-swap-oob="true" ile işaretlenmiş parçalarla yanıt verir.

ASP.NET Core

Bir Razor görünümünde <sgc-file-manager name="..."> Tag Helper'ı dosya yöneticisini oluşturur. İlk oluşturma, AddSgcHtml motoruna kayıtlı, motor ve ad başına bir bileşen oluşturur ve her oluşturma özelliklerini niteliklerden yeniden ayarlar. CustomCommands, TokenSecret ve Provider kodda oluşturulmuş bileşen gerektirir.

Demo

Demos\60.HTML\01.RunTime\28.FileManager, 8130 numaralı bağlantı noktasındaki sgc Document Portal'dır. Üç kullanıcı üst bilgide geçiş yapar: Alice (yönetici), Ben (düzenleyici) ve Carla (görüntüleyici); roller OnBeforeOperation içinde uygulanır. LiveSync, bir etkinlik akışı, varlık avatarları ve bir depolama grafiği dosyalar değiştikçe güncellenir, bir Sign komutu bir PDF'yi SignaturePad ile imzalar ve bir Share link komutu imzalı bir bağlantı gösterir. Tasarım zamanı, Lazarus ve .NET sürümleri bunu yansıtır.

Keşfetmeye devam edin

Online DeneyinDosya Yöneticisi demosunda görün, eSeGeCe demo sunucusunda canlı çalışıyor.
Çevrimiçi yardımBu bileşenin tam API başvurusu ve kullanım kılavuzu.
FileUpload BileşeniDosya yöneticisinin kullandığı parçalı ve sürdürülebilir yükleme protokolü.
PDFViewer BileşeniPDF önizlemesinin arkasındaki gömülü pdf.js görüntüleyicisi.
Tüm sgcHTML Bileşenleri80'den fazla bileşenin tüm özellik matrisine göz atın.
Ücretsiz Deneme Sürümünü İndirin30 günlük deneme sürümü 60.HTML demo projelerini içerir.
FiyatlandırmaTam kaynak kodlu Single, Team ve Site lisansları.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Başlamaya Hazır mısınız?

Ücretsiz deneme sürümünü indirin ve Delphi, C++ Builder ve .NET'te web arayüzleri oluşturmaya başlayın.