《《《《《《《《《对oss操作,上传文件》》》》》》》》》》》》》》
第一步 导入maven依赖
  1. <dependency>
  2. <groupId>com.aliyun.oss</groupId>
  3. <artifactId>aliyun-sdk-oss</artifactId>
  4. <version>2.8.3</version>
  5. </dependency>

第二步 使用文件流上传

jsp代码:上传文件的请求模式我用的是angularjs

<body ng-controller="testController">
<div style="margin: 100px 100px;">
<input id="fileUpload" type="file" />
<button ng-click="uploadFile()">上传</button>
<button ng-click="getBucket()">获取bucket信息</button>
<ol>
<li ng-repeat="fileName in fileNameList" style="margin-top:10px;">
<a href="" ng-bind="fileName" ng-click="downFile(fileName)"></a>
</li> </ol> </div> <!-- floor -->
<div th:include="/common/floor :: commonOnLoadJs"></div>
<script>
angular.module('testApp', ['ng-layer']).controller('testController', function ($scope, layer, $http) { //上传文件
$scope.uploadFile = function(){
var form = new FormData();
var file = document.getElementById("fileUpload").files[0];
form.append('file', file);
$http({
method: 'POST',
url: '/jz-project/testController/testUpload',
data: form,
headers: {'Content-Type': undefined},
transformRequest: angular.identity
}).success(function (data) {
console.log('upload success');
}).error(function (data) {
console.log('upload fail');
})
} //获取文件列表
$scope.getBucket = function(){
$http.post("/jz-project/testController/getBucket").success(function(result) {
console.log(2);
console.log(result);
$scope.fileNameList = result.data;
});
} //下载文件
$scope.downFile = function (fileName) {
// alert(fileName);
          //注意下载文件不能使用post提交,后台会返回输出流对象,post返回的数据浏览器没法解析弹出下载框
          //还会报错:getOutputStream() has already been called for this response
window.location.href = "testController/downFile?fileName="+fileName;
// $http.post("/jz-project/testController/downFile", fileName).success(function(result) {
// console.log(2);
// console.log(result);
// getBucket();
// });
} })
</script> </body>

controller代码

/**
* @Description: 上传文件到oss
* @auther: zrt
* @date: 2018/9/5 15:15
*/
@RequestMapping(value = "/testUpload", method = RequestMethod.POST,produces={"application/json;charset=UTF-8"})
@ResponseBody
public ResultBase<String> testUpload(@RequestParam(value = "file" , required = true) MultipartFile file) {
log.info("开始上传文件");
ResultBase<String> rb = new ResultBase<String>(); log.info("文件名:"+file.getOriginalFilename()); //上传到oss
if(file != null){
OssTestUtil.ossUploadFileStream(file);
} rb.setCode(0);
rb.setData("");
return rb;
}
       

自己封装的OssTestUtil工具

/**
* @Description: 文件流上传oss
* @auther: zrt
* @date: 2018/9/5 15:19
*/
public static void ossUploadFileStream(MultipartFile file){ // Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = ENDPOINT;
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = ACCESS_KEYID;
String accessKeySecret = ACCESS_KEY_SECRET;
// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 上传文件流。
// InputStream inputStream = null;
try {
//三个参数,1、bucket的名称,2、文件名称、3、文件输入流
PutObjectResult por = ossClient.putObject("zrt888888", file.getOriginalFilename(), file.getInputStream()); } catch (IOException e) {
e.printStackTrace();
} // 关闭OSSClient。
ossClient.shutdown(); }

最后页面显示:

  》》》》》》》》》》》》》》下面的实在是懒得写的》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

我还是把代码直接保存百度云吧

oss上传和下载的笔记的更多相关文章

  1. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...

  2. Spring框架学习笔记(7)——Spring Boot 实现上传和下载

    最近忙着都没时间写博客了,做了个项目,实现了下载功能,没用到上传,写这篇文章也是顺便参考学习了如何实现上传,上传和下载做一篇笔记吧 下载 主要有下面的两种方式: 通过ResponseEntity实现 ...

  3. Linux学习笔记:使用ftp命令上传和下载文件

    Linux中如何使用ftp命令,包括如何连接ftp服务器,上传or下载文件以及创建文件夹.虽然现在有很多ftp桌面应用(例如:FlashFXP),但是在服务器.SSH.远程会话中掌握命令行ftp的使用 ...

  4. Java精选笔记_文件上传与下载

    文件上传与下载 如何实现文件上传 在Web应用中,由于大多数文件的上传都是通过表单的形式提交给服务器的,因此,要想在程序中实现文件上传的功能,首先得创建一个用于提交上传文件的表单页面. 为了使Serv ...

  5. linux命令学习笔记(26):用SecureCRT来上传和下载文件

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...

  6. Javaweb学习笔记10—文件上传与下载

    今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容.       ...

  7. 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...

  8. 关于 tp5.0 阿里云 oss 上传文件操作

    tp5.0 结合阿里云oss 上传文件 1.引入 oss 的空间( composer install 跑下第三方拓展包及核心代码包) 备注:本地测试无误,放到线上有问题  应该是移动后的路劲(相对于服 ...

  9. 七牛云存储 qiniu 域名 回收 文件上传 备份 下载 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

随机推荐

  1. 15.selenium_case01

    # 与百度首页交互 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait f ...

  2. centos7下安装docker(14安装docker machine)

    之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...

  3. 如何用chrome扩展将网页变成黑底白字,用以保护视力

    不知道有没有科学依据,自己感觉黑底白字对视力好些,于是动手加个chrome扩展: 第一步:建个文件夹,名称比如叫changeColor; 第二步:在changeColor文件夹中建三个文件:manif ...

  4. 实战Performance Monitor监测EnyimMemcached

    首先要将EnyimMemcached安装至Windows Performance Counters中. 将Enyim.Caching.dll复制到一个文件夹中 在命令行中进入.NET Framewor ...

  5. sqlalchemy和flask-sqlalchemy的几种分页方法

    sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10:所有分页查询 ...

  6. Spring MVC Content Negotiation 转载

    Spring MVC Content Negotiation 2017年11月15日 00:21:21 carl-zhao 阅读数:2983   Spring MVC有两种方式生成output的方法: ...

  7. Luogu3605 [USACO17JAN]Promotion Counting晋升者计数

    Luogu3605 [USACO17JAN]Promotion Counting晋升者计数 给一棵 \(n\) 个点的树,点 \(i\) 有一个权值 \(a_i\) .对于每个 \(i\) ,求 \( ...

  8. 深入理解Proxy 及 使用Proxy实现vue数据双向绑定

    阅读目录 1.什么是Proxy?它的作用是? 2.get(target, propKey, receiver) 3.set(target, propKey, value, receiver) 4.ha ...

  9. 多个jdk 变更 引起 tomcat插件 启动不了 The JRE could not be found.Edit the server and change the JRE location.

    The JRE could not be found.Edit the server and change the JRE location. 在Windows->Preferences-> ...

  10. A2D JS框架 - Web API CSRF保护实现

    这次自己实现了类似jQuery中ajax调用的方法,并且针对RESTFul进行了改造和集成,实现的A2D AJAX接口如下: $.ajax.RESTFulGetCollection("/ap ...