Chapter 8. Uploading Files

Introduction

Web sites use the HTML form tag to allow users to submit files from their own filesystem for processing on the server. The form tag enables the uploading action with a nested input element that has a type attribute set to “file”. The form and input tag is specified using the syntax described in Recipe 8.1.

The HTTP request for file uploading uses a content type of "multipart/form-data”. The HTTP message that the user sends to the server by clicking the web page’s Submit button contains descriptive headers and the body of each uploaded file. Each of the uploaded files is separated by a specified boundary pattern (see the Content-Type header value in Example 8-1). Example 8-1 shows an abbreviated view of a “multipart/form-data” type request including the uploading of three very small files. To make this example more compact, I have removed some of the values from the Accept request header.

Example 8-1. An HTTP request message with three uploaded files
POST /home/upload.jsp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg ...
Referer: http://localhost:8080/home/interact.html
Accept-Language: en-us
Content-Type: multipart/form-data; boundary=---------------------------7d33c11c6018e
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)
Host: localhost:9000
Content-Length: 541
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=7F6154184FFF3D1AE345E1F2FFF1A22E

-----------------------------7d33c11c6018e ...

Get Java Servlet & JSP Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.