Use some jar packages. Commons-fileupload-1.2.2.jar commons-io-1.4.jar
<form action="FileUpload" enctype="multipart/form-data" method="post"> <input type="text" name="name"><br> <input type="file" name="fileName"><br> <input type="submit"> </form>
In this case, the value of name is not obtained because the server obtains an input stream.
System. Out. println (request. getparameter ("name"); // null
System. Out. println (request. getparameter ("FILENAME"); // null
Public void dopost (httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {response. setcontenttype ("text/html"); printwriter out = response. getwriter (); system. out. println (request. getparameter ("name"); system. out. println (request. getparameter ("FILENAME"); servletfileupload upload = new servletfileupload (); try {fileitemiterator iter = upload. getitemiterator (request); While (ITER. hasnext () {fileitemstream item = ITER. next (); string name = item. getfieldname (); // get the form field, which is an input stream inputstream stream = item. openstream (); // if it is a common form field if (item. isformfield () {string value = streams. asstring (Stream); system. out. println (name + "->" + value);} else {string filename = item. getname (); // obtain the File Upload name system. out. println ("file:" + filename) ;}} catch (fileuploadexception e) {e. printstacktrace ();} system. out. println (request. getinputstream (). available (); out. flush (); out. close ();}
Null
Null
Name-> fdsf
File: hello.zip
0
For normal uploads, you can use:
Streams. Copy (stream, new fileoutputstream (request. getrealpath ("Upload") + "\" + filename), true );
System. Out. println ("CPY:" + request. getrealpath ("Upload") + filename );