commons-fileupload上传在这里分三步说明:
第一步:jsp页面Form表单:
<form name="form1" id="form1" action="${root }/save" enctype="multipart/form-data" method="post" onsubmit="return checkFile(document.getElementById('file'),'errShow2');" >
<textarea style='width:99%' rows="10" name="mc" id="mc" ></textarea>
<input type="file" name="file" id="file" style="width: 98%"/>
<input type="submit" value="保 存" />
</form>
第二步:javascript验证上传文件(以只允许上传txt文件为例):
//验证文件类型
function checkFile(imgFile,id)
{
var fileName=getFileName(imgFile);//获取上传文件名称
var fileType=getFileType(fileName); //获取上传文件类型
var bool=checkImgType(fileType);//检查上传文件类型
if(!bool){
//验证没通过,不允许上传
return false;
}
//验证通过
return true;
}
var right_type=new Array("txt")//设置允许上传的文件类型
function checkImgType(fileStr)
{
fileStr=fileStr.toLowerCase();
for (i=0;i<right_type.length;i++){
if(right_type[i]==fileStr){return true;}
}
return false;
}
function getFileName(fileObj)
{
var filepath = fileObj.value;
if(filepath==null||filepath==""){return "";}
if(filepath.lastIndexOf("\\")!=-1){
filename= filepath.substring(filepath.lastIndexOf("\\")+1,filepath.length);
return filename;
}else{
return filepath;
}
}
function getFileType(fileName)
{
if(fileName==null||fileName==""){return "";}
if(fileName.lastIndexOf(".")!=-1){
fileType= fileName.substring(fileName.lastIndexOf(".")+1,fileName.length);
return fileType;
}else{
return "";
}
}
第三步:后台java代码获取上传内容,上传文件
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
List<FileItem> list = upload.parseRequest(request);
String mc = null;//表单中的mc输入项
for (FileItem item : list) {
if (!item.isFormField()) {//如果是上传的文件
String name = item.getName();//上传文件的名称
byte[] bin = item.get();
if (bin.length > 1024 * 1024) {//可用来限制上传文件的大小,这里限制了1024K字节!
}else if(bin!=null&&bin.length>0){//上传的文件处理
}
}else{//如果是form表单内容
if("mc".equalsIgnoreCase(item.getFieldName())){
mc = item.getString("UTF-8");//设置表单数据的编码
}
}
}