欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用Java和js判断文件类型

程序员文章站 2022-03-10 22:02:21
...

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

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 "";
}