|
下面是attachmentSimple上传组件的SimpleFileStore中的storeFile函数:
private static void storeFile(HttpServletRequest request,
HttpServletResponse response) throws Exception {
HashMap<String,String> params = new HashMap<String,String>();
List<FileItem> items = parseMultipartRequest(request);
Iterator<FileItem> iter = items.iterator();
FileItem fileItem = null;
//存储文件采用真实文件名LeeChen20170203`````````````````````
/*
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
System.out.println("name = " + name);
System.out.println("value = " + value);
params.put(name, value); */
String value = "";
String strFileName = "";
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
String name = item.getFieldName();
//存储文件采用真实文件名时
String strAtion = request.getParameter("storeType");
if("storeFileName".equals(name) && "RF".equals(strAtion)){
value = strFileName;
}else{
value = item.getString();
strFileName = value;
}
//System.out.println("name = " + name);
//System.out.println("value = " + value);
params.put(name, value);
//存储文件采用真实文件名LeeChen20170203^^^^^^^^^^^^^^^^^^^^^^^
} else {
/*String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();*/
fileItem = item;
}
}
if(fileItem != null){
String storePath = docStorePath + File.separator + params.get("ownerID");
//System.out.println("storeFileocStoreDir" + docStorePath);
File storeDir = new File(storePath);
if(!(storeDir.exists() && storeDir.isDirectory())){
storeDir.mkdirs();
}
File toStoreFile = new File(storePath + File.separator + params.get("storeFileName"));
//System.out.println("storeFiletoStoreFile" + docStorePath);
fileItem.write(toStoreFile);
}
}
由于项目需要我需要文件存储为原文件名,函数已经被我修改,上传图片和其他文件(图片和文本文件)都没问题,但是传XML文件时候,程序执行到fileItem.write(toStoreFile);,客户端页面自动刷新,因为fileItem.write无法调试,请教管理员这个是怎么回事情? |
|