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. What other elements can I have on my form besides a file?
  5. How can I capture additional fields when uploading?
  6. How does SA-FileUp compare to the Posting Acceptor?
  7. How do I extract just the filename (or extension) from the complete UserFilename path?
  8. After uploading, everything seems fine except that the contents of the uploaded file contain only the filename?!
  9. Why can't I use Request.Form in conjunction with an Upload?
  10. Is there any way to place the uploaded files in a directory that is relative to the virtual root of the webserver?
  11. Can I encrypt files upon upload? Can I use SSL with SA-FileUp?
  12. Permissions and security: how should they be set for uploading?
  13. How does SA-FileUp compare to CGI-based upload mechanisms?
  14. 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 occurered 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://www.internic.net/rfc/rfc1867.txt

Back to Top


Does Internet Explorer support RFC1867?

Microsoft has recently released an add-on to Internet Explorer 3.02 (32-bit) that supports File Upload via the standards-based RFC 1867 (which is used by Software Artisans' SA-FileUp). Internet Explorer 3.02A (16-bit) does not require this add-on.

This means that you can now use a single form to allow your users to 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>

and this now works with Internet Explorer!

To download the add-on, visit http://www.microsoft.com/msdownload/ieplatform/iewin95/iewin95.asp and from the drop-down, select:

Internet Explorer 3.02 File Upload Add-On for Windows 95 & NT

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 Version 2 works with IE 4. For customers who do not wish to upgrade to version 2, we have a slightly modified version 1 available that includes support for IE 4. Please contact us for details and include your original order number.

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

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 Installation Process.

Back to Top


What other elements can I have on my form besides a file?

In Version 1.0 of SA-FileUp, you can only have a single file form element, in addition to submit and reset buttons. In V2, which is currently shipping, you have access to all form data. The upgrade to V2 is free to all registered users. If you have not received an e-mail from us by November 26, 1997 with upgrade instructions then please contact us as the information we have for you may be out of date.

Back to Top


How can I capture additional fields when uploading?

Use Version 2 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 comparisions between SA-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 will allow 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 RFC 1867 for uploads, such as 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 transfering 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 V2 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 already is configured with a certificate, and you enable your web application for use with SSL, then 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_. 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_ to inappropriate areas such as the Windows root directory.

Also, SA-FileUp has a .MaxBytes attribute which you can use to the maximum size of an uploaded file. This will prevent your users from filling your web server's disk. SA-FileUp will write up to 'MaxBytes' number of bytes and then immediately stop.

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 valueof 981EB5B4...

If the error persists, even after you have checked the registry, then 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 occurered 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.

Note that some customers have experienced this problem even after installing the latest version of ASP (1.17.7.0 as of this writing). 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, then 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


What does this error mean: 'error "ASP 0115" Unexpected error - A trappable error occurered 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.

Note that some customers have experienced this problem even after installing the latest version of ASP (1.17.7.0 as of this writing). 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, then 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 1) an error has occurred in the form's processing script or 2) you are using an older or poor HTTP Proxy server. Try sending a smaller file and see the results.

Here is the sequence for scenario (1):

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 ©, 1997 Software Artisans, Inc. All rights reserved.