PureASP upload - using, features, functionality, notes.

          Article, PureASP upload - using, features, functionality, notes. 
          Member of  ScriptUtils.ASPForm 

PureASP upload - using, features, functionality, notes.

 Some personal notes about 2.0 version of PureASP upload   
 

      New version of PureASP upload was intended as free promo software for Huge ASP file upload component. I created ASPForm, FormFields and FormField VBS classes with same properties and methods as HugeASP upload has. Then I've worked on a new store algorithm and progress bar feature. At the last I was working on performance tests.

      And then I reveal very bad thing - Pure-ASP upload performance is much, much better than I expect. I can upload more than ten megabytes without problems and the upload time was in acceptable range. Do you ask why is this a bad thing? Who will buy Huge-ASP upload when Pure-ASP will be almoust enough?

      Previous versions of PureASP upload cope some megabytes. So I have to decide: Hide Pure-ASP upload to a drawer and go to another work, mask the great performance using some "do loop" or publish the VBS code for free with limited usage right.

      My decision was to release Pure-ASP upload for free use, but with limmited size you can upload for free - You can use Pure-ASP upload to upload up to 10MB files for free. If you want to upload bigger files, you have to buy Huge-ASP file upload license.

      Pure ASP file upload cannot have full functionality of Huge ASP upload COM component, of course - the code is written in VBS, HugeASP upload component is a C++ code. Pure ASP file upload lets you upload bigger files now, but it consumes several times more resources than HugeASP upload. PureASP upload takes 3 bytes per source form byte - 300MB of memory for 100MB file - against of HugeASP upload component. HugeASP upload component takes about 100kB of memory per upload - up to 2GB. PureASP upload does not have some other important functionality - code pages (unicode, mac), large database fields insertion, etc.

 Pure-ASP 2.0 upload requirements   
 

      New version of PureASP upload was implemented using ADODB.Stream, ADODB.Recordset  and Scripting.FileSystemObject. These objects are required on the server.
      PureASP upload requires BinaryRead method of Request object. So it will not work on some very old versions of ASP (<1.3 I think).
      PureASP upload usess Class feature of VBS v.5. So you will need at least this version of VBS engine installed (IIS4).
      You will also need Huge-ASP upload license to upload files with size greater than 10MB.

Question

       Hi, I'm looking at your site and I'm thinking about buying a distribution copy of Huge-ASP upload. I need to transfer 20-100 meg files, y'see, so I really want to use HugeASP, and I don't understand the difference with Pure-ASP upload. Except that your site says hugeASP is better for that kind of thing.

Resolution

  •        Pure-ASP upload is is a plain VBS script file (_upload.asp) using objects installed by default in IIS - Scripting and ADODB library. So you do not need to install any additional software. Pure-ASP upload implements most of Huge-ASP upload functionality - methods and properties. You can use the same source code for Pure-ASP and Huge-ASP upload. 
    But the Pure-VBS code has also Pure-Performance and it is very hungry for system resources - memory and processor resources. The code has one more great characteristic - it is free to use. You can use Pure-ASP upload when
     - you need upload only small files (up to megabytes, exceptionally 10th of MB)
     - your provider does not enable to install external components
     - you have small number of concurrent uploads

           Pure-ASP upload is a VBS class. You have to include VBS code and then you can create ASPForm object using New:

    <!--#INCLUDE FILE="_upload.asp"-->
    <%
    Dim Form
    Set Form = New ASPForm
    %>
    

  •       Huge-ASP upload is a high-performance, low resources consumption C++ component with unique algorithm. The component is designed to accept forms of any size (from bytes to gigabytes) with maximum eficiency. Please use Huge-ASP upload in any other case.
           Huge-ASP upload is COM object (created from C++ ATL library). You can create the ASPForm object using CreateObject method of Server object:
    Dim Form
    Set Form = Server.CreateObject("ScriptUtils.ASPForm")
    

           Source code of ASP scripts usin Huge-ASP and Pure-ASP upload is almost same - the only difference is initialization of a Form object. So you can use Pure-ASP upload first for some time and then simply switch to Huge-ASP with changes on one row of source code.

    See also

    PureASP upload - using, features, functionality, notes.
  •  Implemented classes, methods and properties in PureASP file upload include  
     

    ASPForm
     Fully functional:
      ReadChunkReadSize, SizeLimit, UploadID, State, BytesRead, TotalBytes, NewUploadID
     Limited:
      FormType - only multipart forms
      Files, Texts, Items - you cannot enumerate collection using For Each. You have to use Items property for enumeration.
      ReadTime - time is rounded to seconds
      getForm - Returned form does not contain items (you cannot show progress of subsequent form fields in progress bar)
     Without functionality:
      ReadTimeout - not needed in VBS
      CharSet, TempPath, MaxMemoryStorage, SourceData
    FormFields
     Fully functional:
     SaveCount, Item
     Limited:
     
    Texts, Files - you cannot enumerate collection using For Each.
     Without functionality:
      MultiItem
    FormField
     Fully functional:
      SaveAs, Save, SourceLength, Name, ContentDisposition, ContentType, FileName, FilePath, Value, IsFile, Length
     Limited:
      ByteArray, String - you cannot get a part of byte array or string.
     Without functionality:
      CharSet, ContentTransferEncoding, RAWHeader, InProgress, HexString, Index,
            

     PureASP upload include and HugeASP upload component usage   
     
          Huge-ASP upload is COM object (created from C++ ATL library). You can create the object using CreateObject method of Server object:
    Dim Form
    Set Form = Server.CreateObject("ScriptUtils.ASPForm")
    
    You can also use CreateObject function (ASPForm calls GetObjectContext then)
    Dim Form
    Set Form = CreateObject("ScriptUtils.ASPForm")
    
          Pure-ASP upload is a VBS class. You have to include VBS code and then you can create ASPForm using New:
    <!--#INCLUDE FILE="_upload.asp"-->
    <%
    Dim Form
    Set Form = New ASPForm
    %>
    

      Other links for PureASP upload - using, features, functionality, notes.
          Easy to use, hi-performance ASP file upload component with progress bar indicator. Let's you upload multiple files with size up to 2GB to a disk or database along with another form fields. Works with large posts, any character set (including unicode utf-8). Contains one-click multiple files/folders download with on-the-fly compression (Using BinaryWrite/BinaryRead).
          Hi-performance text file logging for ASP/VBScript/VBA applications. Lets you create daily/weekly/monthly log files with variable number of logged values and extra timing and performance info.
           Lets you work with safearray binary data in VBS/JS. It also enables conversion between binary and String data using several code pages. ZLib compress and uncompress functions. Lets you transfer files using compressed stream from a client to server using IE.
          This library also enables calling of some Kernel and Advapi functions (performance, timing, sleep, configuration ...) and enables native work with INI files.


    © 1996 – 2005 Motobit Software, help{at}pstruh.cz, help v. 2.16.14