标签:
公司用到了 阿里的文件服务器 oss ,我们之前用的是springmvc的上传文件。
首先增加阿里的jar到我的maven项目。
复制下面的sample这些java类。、
public class OSSObjectSample { private static final String ACCESS_ID = "****"; private static final String ACCESS_KEY = "****"; private static final String BUCKET_NAME = "111"; private static OSSClient client = null; private static void initialize() { if (client == null) { client = new OSSClient(ACCESS_ID, ACCESS_KEY); } } /** * * 上传文件 2015年7月2日14:11:27 * * @param key * 服务器的文件名称 * * @param file * 要上传的文件 * * @param serviceName * 那个服务器要访问的路径 * @return * @throws OSSException * @throws ClientException * @throws FileNotFoundException */ public static String OSSPutObject(String key, File file, String serviceName) { initialize(); ObjectMetadata objectMeta = new ObjectMetadata(); objectMeta.setContentLength(file.length()); // 可以在metadata中标记文件类型 // objectMeta.setContentType("image/jpeg"); InputStream input; try { input = new FileInputStream(file); client.putObject(BUCKET_NAME, serviceName + "/" + key, input, objectMeta); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "http://" + BUCKET_NAME + ".oss-cn-hangzhou.aliyuncs.com/" + serviceName + "/" + key; } public static String OSSPutObject(String key,MultipartFile multipartFile , String serviceName) { initialize(); CommonsMultipartFile commonsMultipartFile= (CommonsMultipartFile)multipartFile; DiskFileItem diskFileItem = (DiskFileItem)commonsMultipartFile.getFileItem(); File file = diskFileItem.getStoreLocation(); return OSSPutObject(key, file, serviceName); } }
开始的时候 使用client的单例。
然后springmvc使用的是MultipartFile这个文件对象接收的 打开源码看一下 和file是没有关系的 是自己定义的一个接口 然后在继续看 他们直接有没有共同点 没发现什么 然后百度看看 找到了CommonsMultipartFile这个对象 然后慢慢的转了过来 测试成功。
标签:
原文地址:http://my.oschina.net/superman158/blog/473575