关于java的http协议文件上传实用例题一
(2006-07-25 16:43:56)
分类: java |
关于java的http协议上传:(简单实用而且健壮;速度快)
此方法比apache的文件上传包(uploadfile1.1:就文件上传功能而言)要强多了
1.只需要一个MultipartRequest.java基本文件就行。
2.前台html的基本格式
<html><body><form enctype="multipart/form-data" method="post">
<input type="file" name="path" size="38" />
<input type="text" name="res_name" size="38" />
</body></html>
3.后台调用此文件方法如下:
req是HttpServletRequest类.
try {
if (req.getMethod().equals("POST") && MultipartRequest.isMultipart(req)) {
req = new MultipartRequest(req, userId);//userId登陆用户标识
//得到上传文件
File upFile = ((MultipartRequest) req).getFile("path");
//得到上传文件名
String fileName = ((MultipartRequest) req).getFileName(upFile);
//得到上传http的值
req.getParameter("res_name");
//把上传文件存放到c:/temp目录下名为123.jpg的文件
saveAs(upFile, "c:/temp/123.jpg");
finally {
if (req instanceof MultipartRequest) {
//清除上传的临时文件
((MultipartRequest) req).deleteTemporaryFile();
}
//把上传文件存放到指定的目录下文件名
private void saveAs(File upFile, String filePath) throws IOException {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(upFile);
int len = fis.available();
byte[] by = new byte[len];
fis.read(by);
fos = new FileOutputStream(filePath);
fos.write(by);
}
finally {
if (fos != null)
fos.close();
if (fis != null)
fis.close();
}
}