一 使用MultipartRequest;完成文件的上传
import com.oreilly.servlet.MultipartRequest;
MultipartRequest multiRequest = new MultipartRequest(request, ".", "UTF-8");
//获取文件列表
static Map <String,Object> getFiles( MultipartRequest multiRequest) throws ServletException{
Map <String,Object> fileList = new HashMap();
Enumeration files = multiRequest.getFileNames();
String fileName = "";
String filePath="";
while (files.hasMoreElements()) {
fileName = (String) files.nextElement();
System.out.println("FileName============"+fileName);
//用此方法得到上传文件的真正的文件名,这里的fileName指文件输入类型的名称
filePath = multiRequest.getFilesystemName(fileName);
if (null == filePath)
{
System.out.println("file is not exist");
return fileList;
}
System.out.println("FilePath============"+filePath);
//此方法得到一个文件对象,代表储存在服务器上的fileName文件
File f = multiRequest.getFile(fileName);
if (null == f)
{
System.out.println("file is not exist");
return fileList;
}
else
{
fileList.put("ATTNAME_"+fileName,filePath);
fileList.put("ATTDATA_"+fileName,f);
}
}
return fileList;
}
二 //文件转为2进制
public static byte[] File2byte(File file)
{
byte[] buffer = null;
try
{
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1)
{
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return buffer;
}
三 二进制 文件 流 String 都可以互相转换