java上传文件
需要的第三方jar包有(这里使用apache的)
apache的commons-fileupload(上传用),commons-io (listener清理类用) , commons-beanutils(可选)
具体操作
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
if(ServletFileUpload.isMultipartContent(request)) { //判断请求类型是不是multipart
try {
List fileList = upload.parseRequest(request);
for(FileItem item : fileList) {
if(!item.isFormField()) { //判断是不是文件表单
String filename = item.getName();
String ext = filename.substring(filename.indexOf(".") + 1);
if(!"dic".equalsIgnoreCase(ext)) {
out.println("file type must be .dic");
} else {
File uploadedFile = new File(path + "/" + filename);
item.write(uploadedFile); //保存
out.println("upload ok");
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
上传文件名:item.getName();
上传文件扩展名:filename.substring(filename.indexOf(".") + 1); //自己判断
上传文件大小:item.getSize();
保存文件:item.write(xx); //写入的File或InputStream中
web.xml写一个清除的监听器
...
org.apache.commons.fileupload.servlet.FileCleanerCleanup
...
php文件上传
uploadfile是表单中file的name
上传文件名:$_FILE['uploadfile']['name']
上传文件扩展名:$_FILE['uploadfile']['type']
上传文件大小:$_FILE['uploadfile']['size']
保存文件:move_uploaded_file($_FILE['uploadfile']['tmp_name'], $path. $_FILE['uploadfile']['name']); //一句话搞定