en_lang.jpg, 1 kB sk_lang.jpg, 1 kB
English Slovak

      Px Framework - ASP.NET komponenty pre rýchly vývoj databázových aplikácií


Menu:



Články o Px Frameworku:


PxUploader - komponenta na nahrávanie binárnych a textových súborov na server



Komponenta PxUploader zabezpečuje nahranie binárnych alebo textových súborov z klientského prehliadača na server. PxUploader pracuje s prehliadačmi ako Windows Internet Explorer, Firefox a pod. Na správnu funkciu komponenty PxUploader musíte mať vo svojom webovom prehliadači nainštalovaný Media Flash Player a povolený JavaScript.

Pokiaľ chceme pracovať s komponentou PxUploader, musíme si ju v súbore *.aspx zadefinovať nasledovne:

 <Prx:PxUploader ID="Uploader" runat="server" />


Ak chceme, aby komponenta PxUploader bola viditeľná v aspx súboroch, musíme si v hlavičke súboru zadefinovať "Prx" prefix s prepojeným na assembly komponenty PxUploader. Toto vykonáme nasledovne:

 <%@ Register TagPrefix="Prx" Namespace="PxUploader" Assembly="PxUploader" %>


Keď máme toto vykonané, môžeme v súbore *.aspx.cs s komponentou PxUploader pracovať nasledovne. Najprv si do komponenty PxUploader zadáme cestu do adresára, kde chceme odkladať súbory, cez property UploadDir. Ďalej môžeme do property IdUploadFile zadať Id súboru, ktoré bude pripojené k menu súboru ako prefix, pre lepšiu jedinečnú identifikáciu súboru. Cez property MultiFiles, môžeme nastaviť, či pri výbere sa nám bude dať vybrať jeden alebo viac súborov, ktoré budú nahrávané na server. Viac príklad dole:

 Uploader.UploadDir = @"uploads\data";
 Uploader.IdUploadFile = 7777;
 Uploader.MultiFiles = false;


Cez property FileDescription a FileExt, môžeme ovládať zadanie filtra vo formuláry OpenDialog, kde sa vykonáva výber súborov, podľa prípony súboru.

 Uploader.FileDescription = "Image Files";
 Uploader.FileExt = "*.jpg;*.png;*.gif;*.bmp;*.jpeg;*.zip;*.rar";        


Property SizeLimit slúži na zadanie maximálnej veľkosti súboru v bajtoch, ktorý môžete nahrať na server. Komponenta PxUploader umožňuje nahrať súbor na server až do velikosti 2GB. Viac príklad dole, ktorý s aktuálnym prednastaveným nám umožňuje nahrať súbor na server o maximálnej veľkosti 10MB:

 Uploader.SizeLimit = 10485760;


Defaultná veľkosť súboru ktorý je možno nahrať na server, je v IIS nastavený na 4MB. Toto sa dá zmeniť cez nastavenie v súbore web.config, v časti <system.web> v property maxRequestLength. Viac príklad dole:

 <system.web>
    <httpRuntime executionTimeout="110" maxRequestLength="2097151"
     requestLengthDiskThreshold="80" useFullyQualifiedRedirectUrl="false"
     minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="5000"
     enableKernelOutputCache="true" enableVersionHeader="true"
     requireRootedSaveAsPath="true" enable="true" shutdownTimeout="90"
     delayNotificationTimeout="5" waitChangeNotification="0"
     maxWaitChangeNotification="0" enableHeaderChecking="true"
     sendCacheControlHeader="true" apartmentThreading="false"/>
 </system.web>


Pokiaľ by sme chceli na server nahrávať súbory do veľkosti 2GB, na IIS verzie 7 musíme ešte v súbore web.config nastaviť property maxAllowedContentLength v sekcii <system.webServer>. Samozrejme tiež nezabudnúť upraviť property SizeLimit, a nastaviť tam veľkosť 2GB. Viac príklad dole:

 <system.webServer>
   <security>
     <requestFiltering>
       <requestLimits maxAllowedContentLength="2097151000" />
     </requestFiltering>
   </security>
 </system.webServer>


Cez property ButtonText, môžete zmeniť názov tlačítka komponenty PxUploader. Viac príklad dole:

 Uploader.ButtonText = "Add Files...";


Obrázok komponenty PxUploader, pri nahrávaný súboru na server, vyzerá nasledovne, viac obrázok dole:

Obrázok PxUploader


Udalosti komponenty PxUploader:

Komponenta PxUploader generuje dve udalosti (eventy). Sú to udalosti CompleteUpload a AllCompleteUpload. Udalosť CompleteUpload je zavolaná po kompletnom nahraný súboru na server do adresára, ktorý bol stanovený v property UploadDir. V tele metódy ktorá je zavolaná, sú aj odovzdané premenné, ako názov súboru a cesta k súboru kde bol súbor uložený. Udalosť AllCompleteUpload je zavolaná po udalosti CompleteUpload, spravidla keď boli už všetky súbory prenesené na server. Definíciu jednotlivých udalostí, a ich pripojenie na metódy, nájdete popísané, viac príklad dole:

 protected void Page_Load(object sender, EventArgs e)
 {
   Uploader.IdUploadFile = 7777;
   Uploader.UploadDir = @"uploads\data";
   Uploader.ButtonText = "Add Files...";
   Uploader.CompleteUpload += new PxUploader.CompleteUploadEventHandler(Uploader_CompleteUpload);
   Uploader.AllCompleteUpload += new
      PxUploader.AllCompleteUploadEventHandler(Uploader_AllCompleteUpload);
 }

 void Uploader_AllCompleteUpload(object sender, EventArgs e)
 {
   string a = "";
 }

 void Uploader_CompleteUpload(object sender, string FileName, string Path, EventArgs e)
 {
   string a = "";
 }


Pokiaľ by sme chceli zmeniť farbu a tvar tlačítka komponenty PxUploader, môžeme tak urobiť cez property ButtonImageUrl, do ktorej priradíme názov obrázku tlačítka aj s cestou kde sa nachádza. Viac príklad dole:

 Uploader.ButtonImageUrl = "./images/AddFiles.png";
 Uploader.ButtonWidth = 122;
 Uploader.ButtonHeight = 34;


Výsledný obrázok komponenty PxUploader, pri nahrávaný súboru na server, so zmeneným tlačítkom, bude vyzerať nasledovne, viac obrázok dole:

Obrázok PxUploader - ImageButton


Farbu progress baru môžeme meniť cez property ProgressBarColor, zadaným buď textovej hodnoty farby, napr. "red", alebo zadaným číselnej hodnoty napr. "#FF9933 ". Viac príklad dole:

 Uploader.ProgressBarColor = "orange";



Tu nájdete funkčný príklad s komponentou PxUploader, aj so zdrojovými kódmi. Tento funkčný príklad na tomto webe, beží pod databázou MySQL 5.0.

P.č. Názov príkladu Zdrojové Kódy SQL Script
5.10.
CDTitul.aspx
CDTitul.aspx.cs
Statistics.aspx
Statistics.aspx.cs
SQLScript_MySQL.5.1
SQLScript_MySQL.5.0




Ďalšie články o Px Frameworku:



Nie je zmyslom, tejto časti webu dopodrobna popisovať prácu s komponentami PxFrameworku, podrobný popis komponent najdete v manuali, ktorý si môľete stiahnuť tu: Download manual pre Px Framework