一步教会你如何上传资源到云服务器
我使用的是Ucloud,没有账号请先去注册
下面是封装好的方法
@Data
public class FileDtos {private Integer success;private String message;private String url;
}
Ucloud上传成功会返回这状态吗(0:1?失败:成功),url是当前资源的在线地址,如果是图片直接引用即可
package com.jmc.upload_image;import cn.ucloud.ufile.UfileClient;
import cn.ucloud.ufile.api.object.ObjectConfig;
import cn.ucloud.ufile.auth.ObjectAuthorization;
import cn.ucloud.ufile.auth.UfileObjectLocalAuthorization;
import cn.ucloud.ufile.bean.PutObjectResultBean;
import cn.ucloud.ufile.exception.UfileClientException;
import cn.ucloud.ufile.exception.UfileServerException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;import java.io.InputStream;
import java.util.UUID;@Service
public class UcloudProvider {@Value("TOKEN_f2aaf18e-9cfc-4527-9a68-81aba02297ec")private String publicKey;@Value("ae7f7bb9-a751-40f1-bef7-cfb02429b7dd")private String privatekey;@Value("mashuai")private String backetName;@Value("cn-bj")private String region;@Value("ufileos.com")private String suffix;@Value("518400000")private Integer expirse;//放入自己密钥public String uploads(InputStream fileStream,String miedType,String fileName){//防止同一个用户上传图片重复String genrateFileName="";String[] filePath = fileName.split("\\.");if(filePath.length>1){genrateFileName= UUID.randomUUID().toString()+"."+filePath[filePath.length-1];}else {return null;//图片有问题.}try {ObjectAuthorization objectAuthorization = new UfileObjectLocalAuthorization(publicKey, privatekey);ObjectConfig config = new ObjectConfig(region, suffix);//填上地区,PutObjectResultBean response = UfileClient.object(objectAuthorization, config).putObject(fileStream, miedType).nameAs(genrateFileName).toBucket(backetName).setOnProgressListener((bytesWritten, contentLength) -> {}).execute();if(response!=null && response.getRetCode()==0){String url=UfileClient.object(objectAuthorization,config).getDownloadUrlFromPrivateBucket(genrateFileName,backetName,expirse).createUrl(); //将上传到的文件夹,过期时间设置好return url;}} catch (UfileClientException e) {e.printStackTrace();return null;} catch (UfileServerException e) {e.printStackTrace();return null;}return genrateFileName;//当前图片名字}}
上面是一个封装好的Ucloud 通过SDk上传资源的代码
package com.jmc.upload_image;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;import javax.servlet.http.HttpServletRequest;
import java.io.IOException;@Controller
public class FileController {@Autowiredprivate UcloudProvider ucloudProvider;@ResponseBody@RequestMapping("/file/{action}")public FileDtos upload(HttpServletRequest request,@PathVariable(name = "action") String action){System.out.println("action:"+action);if (action.equals("upload")){try {MultipartHttpServletRequest multipartHttpServletRequest=(MultipartHttpServletRequest) request;MultipartFile file = multipartHttpServletRequest.getFile("editormd-image-file");String filename= ucloudProvider.uploads(file.getInputStream(), file.getContentType(), file.getOriginalFilename());FileDtos fileDtos = new FileDtos();fileDtos.setMessage("成功");fileDtos.setUrl(filename);fileDtos.setSuccess(1);System.err.println("对象:"+fileDtos);return fileDtos;}catch (IOException e){e.printStackTrace();}}/* //上传头像。执行插入操作if(action.equals("head")){try {MultipartHttpServletRequest multipartHttpServletRequest=(MultipartHttpServletRequest) request;MultipartFile file = multipartHttpServletRequest.getFile("editormd-image-file");String filename= ucloudProvider.uploads(file.getInputStream(), file.getContentType(), file.getOriginalFilename());FileDtos fileDtos = new FileDtos();fileDtos.setMessage("成功");fileDtos.setUrl(filename);fileDtos.setSuccess(1);//插入图片;Users users= (Users) request.getSession().getAttribute("user");int id=users.getId();System.err.println("用户id:"+id+"-图片:"+filename);userMapper.updateAvatarul(id,filename);return fileDtos;}catch (IOException e){e.printStackTrace();}}*/return null;}
}
以上是后台的方法,接下来前端只需要保证input 的id name与我的一样即可
附赠一个美化默认的input type=file的方法
.file-head {position: relative;width: 80px;height: 30px;background: url('../images/chang_head.PNG ') center center no-repeat;background-size: 100%;
}
.file-head input {position: absolute;display: block;width: 100%;height: 100%;right: 0;top: 0;opacity: 0;
}
<div class="file-head"><input type="file" name="editormd-image-file" id="file2" onchange="updateHead(this)"></div>
接下来就是发送ajax请求的
function updateHead(e) {var userId=$(".cruuentuserId").attr("id");//当前用户的id;//当用户的idvar form = new FormData();form.append("editormd-image-file", document.getElementById("file2").files[0]);$.ajax({url: "http://api.recruit.com/api/communtiy/file/upload", //后台urldata: form,cache: false,async: false,type: "POST", //类型,POST或者GETdataType: 'json', //数据返回类型,可以是xml、json等processData: false,contentType: false,success: function (data) { //成功,回调函数if(data.success==1){//发送插入请求//这个地方,根据需求觉得,我写ajax请求,是因为我那个上传方法很多地方需要用到,为了方便,我直接接受返回的路径$.post("http://api.recruit.com/api/communtiy/updateHead",{"userId":userId,"image_url":data.url},function (data) {$("#update_image").empty();$("#update_image").prepend("<img src='"+data.avatarUrl+"'alt=''>")});}},});
一步教会你如何上传资源到云服务器相关推荐
- 上传文件到云服务器存储路径,上传文件到云服务器存储路径
上传文件到云服务器存储路径 内容精选 换一换 云容器引擎需要与其他云服务协同工作,云容器引擎需要获取如下云服务资源的权限. 一个存储库只可以绑定一个备份策略.一个存储库只可以绑定一个复制策略.一个存储 ...
- 从手机里上传文件到云服务器,手机如何上传文件到云服务器
手机如何上传文件到云服务器 内容精选 换一换 已获取该弹性云服务器的密钥文件.弹性云服务器已经绑定弹性IP地址.已配置安全组入方向的访问规则.如果您是在Windows操作系统上登录Linux,可以按照 ...
- 怎么把手机文件导入华为云服务器,华为手机如何上传数据到云服务器
华为手机如何上传数据到云服务器 内容精选 换一换 对象存储服务OBS是华为云提供的稳定.安全.高效.易用的云存储服务,具备标准Restful API接口,可存储任意数量和形式的非结构化数据.弹性文件服 ...
- PHP项目上传到华为云服务器,php项目上传到云服务器
php项目上传到云服务器 内容精选 换一换 锁定弹性云服务器.租户可以锁定自己的弹性云服务器,不能锁定其他租户的云服务器.弹性云服务器被锁定后,租户将不能再对云服务器执行管理操作.POST /v2.1 ...
- springboot 打包_springboot项目打包上传至阿里云服务器
工具 IDEA+Xshell6+maven 详细步骤 01 对Spring Boot项目进行打包 打包的两种方式:IDEA和CMD 首先介绍使用IDEA进行打包. 双击clean和package,ID ...
- linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器
如何通过FTP将文件上传到腾讯云Linux云服务器?上一篇小编给大家介绍了通过Winscp将文件上传到云服务器的方法,今天小编为大家介绍过FTP将文件上传到腾讯云Linux云服务器的方法,用户需要使用 ...
- 上传文件到华为云云服务器,上传文件到云服务器
上传文件到云服务器 内容精选 换一换 登录Windows操作系统的弹性云服务器时,需使用密码方式登录.因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员密 ...
- git上传新项目到服务器_springboot项目打包上传至阿里云服务器
工具 IDEA+Xshell6+maven 详细步骤 01 对Spring Boot项目进行打包 打包的两种方式:IDEA和CMD 首先介绍使用IDEA进行打包. 双击clean和package,ID ...
- ubuntu从本地上传文件到云服务器、从云服务器下载文件到本地的命令(亲测有效)
1.ubuntu从本地上传文件到云服务器: sudo scp 本地文件路经 username@目标ip:目标路径 在本地打开终端,输入命令,如: scp ./localfile.txt usernam ...
最新文章
- js中获取时间new date()的用法
- PSO求解梯级水库优化调度
- WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)——所有webapi似乎都缺失的一个功能...
- [导入]防止你的日志页被人iframe
- 企业网站 源码 服务邮箱:_公司企业邮箱购买,外贸企业邮箱用哪家服务好?
- Xshell代理访问外网或者公司的内网
- 花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)
- latex插入图像、表格、其他latex脚本时的路径设置
- 当程序员是我最大的遗憾
- python爬取豆瓣书籍_python爬取豆瓣书籍排行
- notepad++官网下载(官网无法访问的解决办法)
- 电气技术与计算机技术结合,探析计算机与电气自动化技术有机结合.doc
- 鸿蒙申请邮箱格式是什么,手机邮箱格式怎么写
- Themeforest 热卖 Shopify 主题 六折促销活动进行中
- openssl 加密解密 指令_openssl命令aes加密和解密
- 阿里云服务器怎么更换ip?
- 窗体内公用的数据表,在使用视图和行过滤时的有趣现象
- 救救小王吧:如何快速解决图像相似性检测问题?
- 图形学基础 (二)关于旋转
- 使用WORD宏实现查找带格式的文字并复制到特定地方