用Java和js判断文件类型

九月份弄了很多东西,真正总结和可供借鉴的其实并不多,今天终于抽空来处理一下了。

1、根据文件类型设置缩略图(java版)

/**
 * 该方法用来判断文件类型,并返回image标签字符串
 * @param fileId:文件序号
 * @param fileName:文件名称
 * @param filePath:文件路径
 * */
private String getImgCode(String fileId,String fileName,String filePath){
	String preFix="images/icon/fileIcon/",path="txt.png",imgStr="";
	if(fileName!=null && fileName.length()>0){
		fileName = fileName.trim();
		String sufFux=fileName.substring(fileName.lastIndexOf(".")+1);
		sufFux = sufFux.toLowerCase();//全部转换成小写
		if(sufFux.endsWith("jpg") || sufFux.endsWith("gif") || 
		   sufFux.endsWith("png") || sufFux.endsWith("jpeg") || 
		   sufFux.endsWith("bmp")){
			path = "pic.png";
			if(filePath!=null && filePath.trim().length()>0){//说明路径存在
				filePath = filePath.replaceAll("\\\"", "/");
				//System.out.println("文件路径:"+filePath);
				File file = new File(filePath);
				if(file.exists()){
					preFix="";//使用自己的路径,不需要加前缀
					path = filePath;
				}
			}
		}else if(sufFux.endsWith("doc") || sufFux.endsWith("docx")){
			path ="word.png";
		}else if(sufFux.endsWith("xls") || sufFux.endsWith("xlsx")){
			path = "excel.png";
		}else if(sufFux.endsWith("rar") || sufFux.endsWith("zip")){
			path = "rar.png";
		}
	}
	imgStr="<img src='"+(preFix + path)+"' title='"+fileName+"' width='78px' heigh='53px'/>";
	return imgStr;
}

 感觉写的不太好,想的时候没考虑清楚,譬如说应该能手动设置图片的宽和高、添加“图片找不到时的处理措施”、判断文件类型考虑有正则表达式。JS版本的这些问题都照顾了,嘎嘎。

2、根据文件类型设置缩略图(js版)

/**
* 该方法用来判断文件类型,并返回image标签字符串
* @param fileId:文件序号
* @param fileName:文件名称
* @param filePath:文件路径
* @param width:图片的宽
* @param height:图片的高
* */
function getImgCode(fileId,fileName,filePath,width,height){
	var preFix="images/icon/fileIcon/";//前缀,即图片路径
	var path="txt.png";//图片名称默认使用文本文件,避免“识别不了时显示空文件”的情况
	var imgStr="",fileType="0";
	var error=2;
	if(fileName!=null && fileName.length>0){
		fileName = jQuery.trim(fileName);
		if((/(?:jpg|gif|png|jpeg|bmp)$/i.test(fileName))){
			path = filePath;
			preFix="";
			error=1;
			fileType="1";
		}else if((/(?:doc|docx)$/i.test(fileName))){
			path ="word.png";
			fileType="2";
		}else if((/(?:xls|xlsx)$/i.test(fileName))){
			path = "excel.png";
			fileType="3";
		}else if((/(?:rar|zip)$/i.test(fileName))){
			path = "rar.png";
			fileType="4";
		}
	}
	var errorStr="onerror='nofind(this,"+error+");'";//error=1时,表示是图片文件不见了,=2表示其他文件类型不见了
	imgStr="<img src='"+(preFix + path)+"' title='"+fileName+"' width='"+width+"px' heigh='"+height+"px' "+errorStr+" fileType='"+fileType+"'/>";
	return imgStr;
}

/**
 * 加载图片时若出现错误,调用该方法
 * @param obj:当前image标签本身
 * @param flag:1-图片文件 2-其他类型文件
 */
function nofind(obj,flag){
	var path="txt.png";//找不到文件时也用文本文件表示
	if(flag==1){
		path = "pic.png";
	}
	$(obj)[0].src="images/icon/fileIcon/"+path;
	$(obj)[0].onerror=null; //控制不要一直跳动 
}

 3、java获取文件后缀名:

/***
 * 获取文件类型,后缀名
 * @param fileName
 * @return
 */
public String getFileExt(String fileName){
    String value = new String();
    int start = 0;
    int end = 0;
    if(fileName == null)
        return null;
    start = fileName.lastIndexOf(46) + 1;
    end = fileName.length();
    value = fileName.substring(start, end);
    if(fileName.lastIndexOf(46) > 0)
        return value;
    else
        return "";
}

猜你喜欢

转载自1017401036.iteye.com/blog/2242709