您的位置:首页 > 编程语言 > Java开发

java实现文件上传FileUpload

2013-07-14 08:25 274 查看
》java实现文件上传FileUpload  作者:左轩、Shiny

FileUploadUtil.java

package com.shiny.ertao.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import com.shiny.ertao.model.GoodsFile;

public class FileUploadUtil {
//默认文件后缀
private static String extName=".jpg";
private static String uploadDir = "goods";

/**
* 获取文件扩展名 如jpg,png,gif,doc,exe,rar==
* @param fileName 文件名
* @return
*/
public static String getFileExt(String fileName){

if(!fileName.contains(".")) return extName;
if(fileName.endsWith("."))  return extName;

return fileName.substring(fileName.lastIndexOf(".")+1);
}

/**
* 替换文件名
* @param oldName  文件名
* @return 返回一个32位随机文件名
*/
public static String updateFileName(String oldName){

return UUID.randomUUID().toString()+"."+getFileExt(oldName);

}

/**
* 返回一个新文件名
* @param newName 新文件名(不带后缀)
* @param oldName 旧文件名
* @return
*/
public static String updateFileName(String newName,String oldName){

return newName+"."+getFileExt(oldName);

}

/**
* 文件上传
* @param file		文件对象
* @param filePath  新文件路径+文件名(必须存在)
* @return
*/
public static boolean uploadFile(File file,String fileName){
boolean flag = false;
InputStream in=null;
OutputStream out = null;
try {
in = new FileInputStream(file);
out = new FileOutputStream(fileName);
byte[] b = new byte[1024];
int len=0;
while((len=in.read(b))!=-1){
out.write(b,0,len);
}
flag = true;
out.close();
in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return flag;
}

/**
* 匹配后缀是否支持
* @param oldName 文件名
* @param exts  后缀数组
* @return
*/
public static boolean chekcExt(String oldName,String[] exts){
String ext = getFileExt(oldName);
boolean flag = false;
for(int i=0;i<exts.length;i++){

if(ext.equalsIgnoreCase(exts[i])){
flag = true;
}
}

return flag;
}

/**图片上传
* 获取拼接后的图片
* @param goodsFile   图片对象
* @param basePath	   上传路径
* @return
*/
public static String getUploadFile(GoodsFile goodsFile,String basePath){
StringBuffer buff  = new StringBuffer();

for(int i=0;i<goodsFile.getGoodsImage().length;i++){
String temp = goodsFile.getGoodsImageFileName()[i];
String fileName = FileUploadUtil.updateFileName(temp);
//System.out.println("新文件名==>"+fileName);
//组合文件名
buff.append(fileName+"?");
//文件上传
FileUploadUtil.uploadFile(goodsFile.getGoodsImage()[i], basePath+"\\"+fileName);

}

return buff.substring(0,buff.length()-1);
}

}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  file upload java