def upload(request,params){
//文件保存目录路径
String savePath = request.getRealPath("/") + "attached/";
//文件保存目录URL
//String saveUrl = request.getContextPath() + "/attached/";
//定义允许上传的文件扩展名
HashMap<String, String> extMap = new HashMap<String, String>();
extMap.put("image", "gif,jpg,jpeg,png,bmp");
extMap.put("flash", "swf,flv");
extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
//最大文件大小
long maxSize = 1000000;
//检查目录
File uploadDir = new File(savePath);
if(!uploadDir.isDirectory()){
// render(getError("上传目录不存在。"));
}
//检查目录写权限
if(!uploadDir.canWrite()){
// render(getError("上传目录没有写权限。"));
}
String dirName = request.getParameter("dir");
if (dirName == null) {
dirName = "image";
}
if(!extMap.containsKey(dirName)){
}
//创建文件夹
savePath += dirName + "/";
//saveUrl += dirName + "/";
File saveDirFile = new File(savePath);
if (!saveDirFile.exists()) {
saveDirFile.mkdirs();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String ymd = sdf.format(new Date());
savePath += ymd + "/";
//saveUrl += ymd + "/";
File dirFile = new File(savePath);
if (!dirFile.exists()) {
dirFile.mkdirs();
}
try {
def f = request.getFile('image')
if(!f)
f = request.getFile('imgFile')
if(!f.empty){
def fileName=f.getOriginalFilename() //得到文件名称
// string localpath=f.getAbsolutePath();
// println localpath
String fileType = ".jpg";
if(fileName!=null && fileName!=''){
fileType = fileName.substring(fileName.indexOf(".")) //得到文件类型
}
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + fileType;
def file= new File(savePath, newFileName);
if(!file.exists()){
file.mkdirs()//如果file不存在自动创建
}
f.transferTo(file) //上传
def key;
if(!f.isEmpty()){
String suffix = f.getOriginalFilename().substring(f.getOriginalFilename().lastIndexOf("."));
key = UUID.randomUUID().toString() + suffix;
}
Config.ACCESS_KEY = "BVV63KrFiv1O2tMn4_Og5IW7gWVEWcw2XkJFfUGJ";
Config.SECRET_KEY = "jvkEGVGfoUegBmmH64slRcNEjVVXtGIDpEvV91pL";
Mac mac = new Mac(Config.ACCESS_KEY, Config.SECRET_KEY);
// 请确保该bucket已经存在
String bucketName = "domain";
PutPolicy putPolicy = new PutPolicy(bucketName);
String uptoken = putPolicy.token(mac);
PutExtra extra = new PutExtra();
def localFile= savePath+newFileName;
PutRet ret = IoApi.putFile(uptoken, key, localFile, extra);
if (ret.ok()) {
File tempfile=new File(localFile);
tempfile.delete();
//切换不同七牛账户注意更新url头部,以新的七牛账户httpURL为准
String url= "http://7xn3uy.com1.z0.glb.clouddn.com/" + "/" + key;
return url;
} else {
return;
}
}
} catch (Exception e) {
e.printStackTrace()
return("")
}
}