SpringMVC上传文件

来源:互联网 发布:最早睡直播软件 编辑:程序博客网 时间:2024/06/05 07:17

1、maven依赖(spring依赖省略)

<dependency>   <groupId>com.amazonaws</groupId>   <artifactId>aws-java-sdk-s3</artifactId>   <version>1.10.76</version></dependency>

2、springmvc.xml配置

 <bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">            <property name="maxUploadSize"><value>100000</value></property>          <property name="defaultEncoding"><value>UTF-8</value></property>    </bean> 

3、controller层

@RequestMapping(value = "upload", method = RequestMethod.POST)@ResponseBodypublic String upload(HttpServletRequest request, @RequestParam(value = "file") MultipartFile file) {   return UploadUtils.upload(file);}

4、上传至Amazon s3工具类(UploadUtils.java)

public static String upload(String userKey, MultipartFile file) {   AWSCredentials credentials = new BasicAWSCredentials("amazons3.accessKey", "amazons3.secretKey");   ClientConfiguration clientConfig = new ClientConfiguration();   clientConfig.setProtocol(Protocol.HTTP);   AmazonS3 s3 = new AmazonS3Client(credentials, clientConfig);   s3.setEndpoint("amazons3.endpoint");   String bucketName = "bucketname";   String key = "img/" + userKey;   URL url = null;   try {      if (!s3.doesBucketExist(bucketName)) {         s3.createBucket(bucketName);      }      ObjectMetadata metadata = new ObjectMetadata();      metadata.setContentLength(file.getSize());      metadata.setContentType(file.getContentType());      s3.putObject(new PutObjectRequest(bucketName, key, file.getInputStream(), metadata));      s3.setObjectAcl(bucketName, key, CannedAccessControlList.PublicRead);      GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(bucketName, key);      Date expirationDate = null;      try {         expirationDate = new SimpleDateFormat("yyyy-MM-dd").parse("2050-12-31");      } catch (ParseException e) {         e.printStackTrace();      }      urlRequest.setExpiration(expirationDate);      url = s3.generatePresignedUrl(urlRequest);   } catch (AmazonClientException | IOException e) {      e.printStackTrace();   }   return url.toString();}
0 0