公司用到了 阿里的文件服務器 oss ,咱們以前用的是springmvc的上傳文件。java
首先增長阿里的jar到個人maven項目。web
複製下面的sample這些java類。、spring
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這個對象 而後慢慢的轉了過來 測試成功。mvc