《《《《《《《《《对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. MySQL高级知识(十五)——主从复制

    前言:本章主要讲解MySQL主从复制的操作步骤.由于环境限制,主机使用Windows环境,从机使用用Linux环境.另外MySQL的版本最好一致,笔者采用的MySQL5.7.22版本,具体安装过程请查 ...

  2. MySQL高级知识(十)——批量插入数据脚本

    前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( ...

  3. 【FJWC 2019】min

    [FJWC 2019]min 题目描述 给你一张 \(n\) 个点 \(m\) 条边的无向图,走过每条边都需要花费 \(1\) 秒. 给你一个整数 \(k\) ,请你选择至多 \(k\) 个点,令经过 ...

  4. UVA11925-Generating Permutations(贪心)

    Problem UVA11925-Generating Permutations Accept: 214  Submit: 1429Time Limit: 1000 mSec Problem Desc ...

  5. pandas 选择列或者添加列生成新的DataFrame

    选择某些列 import pandas as pd # 从Excel中读取数据,生成DataFrame数据 # 导入Excel路径和sheet name df = pd.read_excel(exce ...

  6. BZOJ3378:[USACO]MooFest 狂欢节(树状数组)

    Description 每一年,约翰的N(1≤N≤20000)只奶牛参加奶牛狂欢节.这是一个全世界奶牛都参加的大联欢.狂欢节包括很多有趣的活动,比如干草堆叠大赛.跳牛栏大赛,奶牛之间有时还相互扎屁股取 ...

  7. forall 与 for loop 案例

    create table a_tab(ver number,id number);create table b_tab(ver number,id number);set timing on DECL ...

  8. 【转】如何使用分区助手完美迁移系统到SSD固态硬盘?

    自从SSD固态硬盘出世以来,一直都被持续关注着,SSD的性能优势让无数用户起了将操作系统迁移到SSD的心思,直接后果就是让无数机械硬盘为止黯然退场,很多软件都可以做到系统迁移,然而,被完美迁移的系统却 ...

  9. java操作Redis缓存设置过期时间

    关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息 ...

  10. SkylineGlobe TerraExplorer Pro 7.0 Web 控件版 第一行示例代码

    SkylineGlobe TerraExplorer Pro 7.0 是原生的64位应用程序,在Web端用插件方式开发的第一行示例代码如下: 常规代码,需要IE64位: <!DOCTYPE ht ...