For the most current version of this FAQ, please visit the Software Artisans' web site.


Table of Contents


Part I - Questions

  1. Where can I find more information about RFC1867?
  2. Does Internet Explorer support RFC1867?
  3. I 'rent' nt virtual server space from an ISP running IIS 3.0. Can I just copy your dll to my site and start using it?
  4. How can I capture additional fields when uploading?
  5. How does SA-FileUp compare to the Posting Acceptor?
  6. How do I extract just the filename (or extension) from the complete UserFilename path?
  7. After uploading, everything seems fine except that the contents of the uploaded file contain only the filename?!
  8. Why can't I use Request.Form in conjunction with an Upload?
  9. Is there any way to place the uploaded files in a directory that is relative to the virtual root of the webserver?
  10. Can I encrypt files upon upload? Can I use SSL with SA-FileUp?
  11. Permissions and security: how should they be set for uploading?
  12. How does SA-FileUp compare to CGI-based upload mechanisms?
  13. How does SA-FileUp compare to FTP-based upload mechanisms?

Part II - Error Messages

  1. HTTP/1.0 501 Not Supported
  2. Server object error 'ASP 0177:80040154' Server.CreateObject Failed'
  3. error "ASP 0115" Unexpected error - A trappable error occurred in an external object.
  4. The Browser Reports "Network Error" or "Server Connection Reset" when transmitting a file

 


Part I - Questions

Where can I find more information about RFC1867?

The official RFC can be found at http://info.internet.isi.edu/in-notes/rfc/files/rfc1867.txt Form-based File Upload in HTML

Back to Top


Does Internet Explorer support RFC1867?

Internet Explorer 4.0 includes support for RFC1867. Internet Explorer 3.02 (32-bit) requires an add-on that supports File Upload via the standards-based RFC 1867 (which Software Artisans' SA-FileUp uses). Internet Explorer 3.02A (16-bit) does not require this add-on.

This means that you can now use a single form that lets your users upload from either a Netscape or IE browser. No additional ActiveX Control and no browser-specific pages are necessary. As with Netscape, define your form as:

	<FORM ENCTYPE="multipart/form-data" ACTION="formresp.asp" METHOD="POST">
	Enter Filename: <INPUT TYPE="FILE" NAME="F1">

	<INPUT TYPE="SUBMIT">
	</FORM>

This now works with Internet Explorer!

Internet Explorer version 4 includes this functionality natively, without an add-on. However, Microsoft has changed their implementation of RFC1867 between IE 3.02 and IE 4. SA-FileUp Versions 2.x and higher work with IE 4. The current upgrade is free to all registered users. Please contact us for details and include your original order number. (Send e-mail to info@softartisans.com or call 1-877-SOFTART.)

There are some problems with Internet Explorer's support for RFC1867:

For more information about IE's support for RFC 1867, see KB article Q161395.

Back to Top


I 'rent' nt virtual server space from an ISP running IIS 3.0. Can I just copy your dll to my site and start using it?

Your ISP must register the component before you will be able to use it. This is step 2 of the Manual installation process. It is automatic during the normal InstallShield setup.

Back to Top


How can I capture additional fields when uploading?

Use Version 2.x or higher of SA-FileUp. Instead of using ASP's Request.Form object, use the SA-FileUp Form object (upl.Form), which has identical functionality to Request.Form, but understands the different form-encoding scheme used when performing file uploads.

Back to Top


How does SA-FileUp compare to the Posting Acceptor?

Here are objective comparisons betweenSA-FileUp and Microsoft's Posting Acceptor (PA):

Back to Top


How do I extract just the filename (or extension) from the complete UserFilename path?

VBScript includes the InstrRev function that allows you to search backwards along a string. Using this function, you could search for a "\" to extract just the filename or a "." for the extension. Here is some sample code:

NewFileName = Mid(upl.UserFilename, InstrRev(upl.UserFilename, "\") + 1)
Back to Top


After uploading, everything seems fine except that the contents of the uploaded file contain only the filename?!

This occurs when your browser does not support RFC1867 for uploads. This is true with versions of Internet Explorer prior to 3.02. The browser sees the <INPUT TYPE="FILE"> definition, and interprets it as <INPUT TYPE="text" SIZE="20" NAME="name">. Since the text box contains the filename, this is only information transmitted by the browser. Additionally, like all form information, the filename is URL-encoded (which explains the funny '%xy' contained in the filename).

Back to Top


Why can't I use Request.Form in conjunction with an Upload?

Uploading is performed via an Internet standard called RFC1867. This standard uses a different encoding scheme than typical HTML forms. Typically an HTML may be defined as:

	<FORM METHOD="POST" ACTION="PROCESS.ASP">

To upload files, an additional attribute must be specified:

	<FORM METHOD="POST" ACTION="PROCESS.ASP" ENCTYPE="MULTIPART/FORM-DATA">

This attribute changes the encoding type (ENCTYPE) of the form for efficiency of transferring large amounts of data. However, this encoding type is not understood by ASP's Request.Form method. It is unable to separate the file information from the other form data.

SA-FileUp includes all of the Request.Form's functionality and can interpret forms using this alternate encoding scheme.

Back to Top


Is there any way to place the uploaded files in a directory that is relative to the virtual root of the webserver?

Yes. Use ASP's built-in Server.Mappath("\vroot") function to map the virtual path to a physical path. Thus, the code would look like:

	upl.SaveAs Server.Mappath("\upload") & "\" & filename

Back to Top


Can I encrypt files upon upload? Can I use SSL with SA-FileUp?

Files can be encrypted during transfer by using Secure Sockets Layer (SSL). If your server is already configured with a certificate and you enable your web application for use with SSL, all transfers and uploads will encrypt files upon transfer. Use 'https:' instead of 'http:' in the URL.

Back to Top


Permissions and security: how should they be set for uploading?

SA-FileUp executes in the same security context as IIS, which is typically as user IUSR_<machinename>. This is set using the Internet Service Manager. SA-FileUp can only write to files with this permission.

Since SA-FileUp is writing to disk, it is suggested that you set permissions appropriately to disable write access by IUSR_<machinename> to inappropriate areas such as the Windows root directory.

Also, SA-FileUp has a .MaxBytes attribute that you can use to define the maximum size of an uploaded file. This prevents your users from filling your web server's disk. SA-FileUp writes up to 'MaxBytes' number of bytes and then immediately stops.

Back to Top


How does SA-FileUp compare to CGI-based upload mechanisms?

SA-FileUp offers several important advantages over CGI-based upload mechanisms:

Back to Top


How does SA-FileUp compare to FTP-based upload mechanisms?

SA-FileUp offers numerous advantages over FTP-based upload mechanisms.

 

Back to Top


Part II - Error Messages

What does error this error mean: "HTTP/1.0 501 Not Supported"

It typically means that the directory, or virtual root, that contains your ASP scripts, has not been set to allow execute permission. To correct the configuration:

Back to Top


What does this error mean: "Server object error 'ASP 0177:80040154' Server.CreateObject Failed"

That is a "Class not registered" error. Try running regsvr32 on the DLL once again and see if any errors appear during registration.

You can also check the Registry manually. Look for:

	HKEY_CLASSES_ROOT\SoftArtisans.FileUp\CLSID

which should have a value of FB3F89EF.

If the error persists, even after you have checked the registry, check the NTFS permissions on the SAFILEUP.DLL file.

IIS, which typically executes as IUSR_machinename, must have read and execute permission to both this file and the directory where it is located.

If the CreateObject fails, SA-FileUp can't return any diagnostic information. If you have the Win32 SDK, errors such as 8nnnnnnn can be found in include\winerror.h.

Back to Top

 


What does this error mean: 'error "ASP 0115" Unexpected error - A trappable error occurred in an external object.'

It typically means that you are not running the latest version of Internet Information Server / Active Server. See the Installation Instructions for more details.

Some customers have experienced this problem even after installing the latest version of ASP. If you are still experiencing this error, it is possible that the upgrade did not "take", partially due to some inaccuracies in Microsoft's Hotfix installation instructions. If this is the case:

  1. Stop IIS (all services from the Internet Service Manager)

  2. Assuming you still have the old version of ASP.DLL and it is called ASP_OLD.DLL, from a command prompt, run:
    	C:> REGSVR32 /U ASP_OLD.DLL (to unregister the old version)

  3. With the new ASP.DLL, run:
    	C:> REGSVR32 ASP.DLL

  4. Restart IIS.
Back to Top


The Browser reports "Network Error" or "Server Connection Reset" when transmitting a file

The browser is attempting to transmit a file larger than 48 KB and either an error has occurred in the form's processing script or you are using an older or poor HTTP Proxy server. Try sending a smaller file and see the results.

Here is the sequence for the first scenario (an error has occurred in the form's processing script):

This error also occurs if you are using an older HTTP Proxy server. For example, Netscape Proxy Server V1.0 did not allow HTTP Post larger than 48 KB. Netscape Proxy Server V2.5 or later solves this problem entirely. Again, the browser would report a Network Error because it had more data to send in the HTTP TCP stream than was read by the receiver.

Back to Top

Copyright © 2000 Software Artisans, Inc. All rights reserved.