package com.cku.upyun; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import com.cku.upyun.UpYun.PARAMS; public class ImageFtp { public static String UPYUNWEBURL = "http://upyun.chongaibao.com/"; public static String IMAGE_PATH = "cab/image/image"; public static String AVATAR_PATH = "cab/image/avatar"; public static String VIDEO_PATH = "cab/video/video"; public static String WEB_CONTENT_PATH = "cab/web/content"; public static String IMAGE_PATH_TEST = "cab_test/image/image"; public static String AVATAR_PATH_TEST = "cab_test/image/avatar"; public static String VIDEO_PATH_TEST = "cab_test/video/video"; public static String WEB_CONTENT_TEST = "cab_test/web/content"; public static String BASE_BUCKET_URL = "http://upyun.chongaibao.com"; private static String USERNAME = "chongaibao"; private static String BUCKET = "chongaibao"; private static String PASSWORD = "chongai.,"; public static String uploadBytes(String basePath, String path, byte[] data) { UpYun uy = new UpYun(USERNAME, BUCKET, PASSWORD); uy.writeFile(basePath + "/" + path, data); return BASE_BUCKET_URL + "/" + basePath + "/" + path; } /** * 图片压缩 * @param basePath * @param path * @param data * @return * @throws IOException */ public static String uploadGmkerlBytes(String basePath, String path, byte[] data) throws IOException { path = "min_"+path; UpYun uy = new UpYun(USERNAME, BUCKET, PASSWORD); // 设置缩略图的参数 Map params = new HashMap(); // 设置缩略图类型,必须搭配缩略图参数值(KEY_VALUE)使用,否则无效 params.put(PARAMS.KEY_X_GMKERL_TYPE.getValue(), PARAMS.VALUE_FIX_BOTH.getValue()); // 设置缩略图参数值,必须搭配缩略图类型(KEY_TYPE)使用,否则无效 params.put(PARAMS.KEY_X_GMKERL_VALUE.getValue(), "150x150"); // 设置缩略图的质量,默认 95 params.put(PARAMS.KEY_X_GMKERL_QUALITY.getValue(), "95"); // 设置缩略图的锐化,默认锐化(true) params.put(PARAMS.KEY_X_GMKERL_UNSHARP.getValue(), "true"); // 若在 upyun 后台配置过缩略图版本号,则可以设置缩略图的版本名称 // 注意:只有存在缩略图版本名称,才会按照配置参数制作缩略图,否则无效 params.put(PARAMS.KEY_X_GMKERL_THUMBNAIL.getValue(), "small"); // 上传文件,并自动创建父级目录(最多10级) uy.writeFile(basePath + "/" + path, data, true, params); return BASE_BUCKET_URL + "/" + basePath + "/" + path; } /** * 图片删除 */ public static void deleteFile(String filePath) { UpYun uy = new UpYun(USERNAME, BUCKET, PASSWORD); // 删除文件 uy.deleteFile(filePath); } public static String uploadFile(String basePath, String path, String localFile) throws IOException { FileInputStream fis = null; try { fis = new FileInputStream(localFile); String result = uploadStream(basePath, path, fis); return result; } finally { if (fis != null) try { fis.close(); } catch (Exception e) {} } } public static String uploadStream(String basePath, String path, InputStream is) throws IOException { ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream(); byte[] buffer = new byte[64 << 8]; // 64K while (true) { int read = is.read(buffer); if (read == -1) { break; } baos.write(buffer, 0, read); } return uploadBytes(basePath, path, baos.toByteArray()); } finally { if (baos != null) try { baos.close(); } catch (Exception e) {} } } }