62,614
社区成员
发帖
与我相关
我的任务
分享
List /* FileItem */items = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
FileItem fileItem;
File fout;
out.println("[parseRequest.jsp] Let's read input files ...");
while (iter.hasNext()) {
fileItem = (FileItem) iter.next();
if (fileItem.isFormField()) {
out.println("[parseRequest.jsp] (form field) "
+ fileItem.getFieldName() + " = "
+ fileItem.getString());
// System.out.println("[parseRequest.jsp] (form field) "
// + fileItem.getFieldName() + " = "
// + fileItem.getString());
// If we receive the md5sum parameter, we've read
// finished to read the current file. It's not
// a very good (end of file) signal. Will be better in
// the future ... probably !
// Let's put a separator, to make output easier to read.
if (fileItem.getFieldName().equals("md5sum[]")) {
out
.println("[parseRequest.jsp] ------------------------------ ");
}
} else {
// Ok, we've got a file. Let's process it.
// Again, for all informations of what is exactly a
// FileItem, please
// have a look to
// http://jakarta.apache.org/commons/fileupload/
//
out.println("[parseRequest.jsp] FieldName: "
+ fileItem.getFieldName());
out.println("[parseRequest.jsp] File Name: "
+ fileItem.getName());
out.println("[parseRequest.jsp] ContentType: "
+ fileItem.getContentType());
out.println("[parseRequest.jsp] Size (Bytes): "
+ fileItem.getSize());
// If we are in chunk mode, we add ".partN" at the end
// of the file, where N is the chunk number.
String uploadedFilename = fileItem.getName()
+ (numChunk > 0 ? ".part" + numChunk : "");
fout = new File(ourTempDirectory
+ (new File(uploadedFilename)).getName());
out.println("[parseRequest.jsp] File Out: "
+ fout.toString());
// write the file
System.out.println("uploadedFilename:"+uploadedFilename);
fileItem.write(fout);
// FileInputStream fis = new FileInputStream(ourTempDirectory
// + fileItem.getName());
//
// FileOutputStream fos = new FileOutputStream(
// ourTempDirectory + fileItem.getName());
//
// byte[] byteBuff = new byte[1024];
// int nbBytes = 0;
// while ((nbBytes = fis.read(byteBuff)) >= 0) {
// // out.println("[parseRequest.jsp] " + " Nb
// // bytes read: " + nbBytes);
// fos.write(byteBuff, 0, nbBytes);
// }
// fis.close();
// fout.delete();
// receive(request, response);
// ////////////////////////////////////////////////////////////////////////////////////
// Chunk management: if it was the last chunk, let's
// recover the complete file
// by concatenating all chunk parts.
//
/*
if (bLastChunk) {
System.out.println("bLastChunk:"+bLastChunk);
out
.println("[parseRequest.jsp] Last chunk received: let's rebuild the complete file ("
+ fileItem.getName() + ")");
// First: construct the final filename.
FileInputStream fis;
FileOutputStream fos = new FileOutputStream(
ourTempDirectory + fileItem.getName());
int nbBytes;
byte[] byteBuff = new byte[1024];
String filename;
for (int i = 1; i <= numChunk; i += 1) {
filename = fileItem.getName() + ".part" + i;
out.println("[parseRequest.jsp] "
+ " Concatenating " + filename);
fis = new FileInputStream(ourTempDirectory
+ filename);
while ((nbBytes = fis.read(byteBuff)) >= 0) {
// out.println("[parseRequest.jsp] " + " Nb
// bytes read: " + nbBytes);
fos.write(byteBuff, 0, nbBytes);
}
fis.close();
}
fos.close();
}*/
// End of chunk management
// ////////////////////////////////////////////////////////////////////////////////////
fileItem.delete();
}
}// while