我使用的是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=''>")});}},});

一步教会你如何上传资源到云服务器相关推荐

  1. 上传文件到云服务器存储路径,上传文件到云服务器存储路径

    上传文件到云服务器存储路径 内容精选 换一换 云容器引擎需要与其他云服务协同工作,云容器引擎需要获取如下云服务资源的权限. 一个存储库只可以绑定一个备份策略.一个存储库只可以绑定一个复制策略.一个存储 ...

  2. 从手机里上传文件到云服务器,手机如何上传文件到云服务器

    手机如何上传文件到云服务器 内容精选 换一换 已获取该弹性云服务器的密钥文件.弹性云服务器已经绑定弹性IP地址.已配置安全组入方向的访问规则.如果您是在Windows操作系统上登录Linux,可以按照 ...

  3. 怎么把手机文件导入华为云服务器,华为手机如何上传数据到云服务器

    华为手机如何上传数据到云服务器 内容精选 换一换 对象存储服务OBS是华为云提供的稳定.安全.高效.易用的云存储服务,具备标准Restful API接口,可存储任意数量和形式的非结构化数据.弹性文件服 ...

  4. PHP项目上传到华为云服务器,php项目上传到云服务器

    php项目上传到云服务器 内容精选 换一换 锁定弹性云服务器.租户可以锁定自己的弹性云服务器,不能锁定其他租户的云服务器.弹性云服务器被锁定后,租户将不能再对云服务器执行管理操作.POST /v2.1 ...

  5. springboot 打包_springboot项目打包上传至阿里云服务器

    工具 IDEA+Xshell6+maven 详细步骤 01 对Spring Boot项目进行打包 打包的两种方式:IDEA和CMD 首先介绍使用IDEA进行打包. 双击clean和package,ID ...

  6. linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器

    如何通过FTP将文件上传到腾讯云Linux云服务器?上一篇小编给大家介绍了通过Winscp将文件上传到云服务器的方法,今天小编为大家介绍过FTP将文件上传到腾讯云Linux云服务器的方法,用户需要使用 ...

  7. 上传文件到华为云云服务器,上传文件到云服务器

    上传文件到云服务器 内容精选 换一换 登录Windows操作系统的弹性云服务器时,需使用密码方式登录.因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员密 ...

  8. git上传新项目到服务器_springboot项目打包上传至阿里云服务器

    工具 IDEA+Xshell6+maven 详细步骤 01 对Spring Boot项目进行打包 打包的两种方式:IDEA和CMD 首先介绍使用IDEA进行打包. 双击clean和package,ID ...

  9. ubuntu从本地上传文件到云服务器、从云服务器下载文件到本地的命令(亲测有效)

    1.ubuntu从本地上传文件到云服务器: sudo scp 本地文件路经 username@目标ip:目标路径 在本地打开终端,输入命令,如: scp ./localfile.txt usernam ...

最新文章

  1. js中获取时间new date()的用法
  2. PSO求解梯级水库优化调度
  3. WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)——所有webapi似乎都缺失的一个功能...
  4. [导入]防止你的日志页被人iframe
  5. 企业网站 源码 服务邮箱:_公司企业邮箱购买,外贸企业邮箱用哪家服务好?
  6. Xshell代理访问外网或者公司的内网
  7. 花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)
  8. latex插入图像、表格、其他latex脚本时的路径设置
  9. 当程序员是我最大的遗憾
  10. python爬取豆瓣书籍_python爬取豆瓣书籍排行
  11. notepad++官网下载(官网无法访问的解决办法)
  12. 电气技术与计算机技术结合,探析计算机与电气自动化技术有机结合.doc
  13. 鸿蒙申请邮箱格式是什么,手机邮箱格式怎么写
  14. Themeforest 热卖 Shopify 主题 六折促销活动进行中
  15. openssl 加密解密 指令_openssl命令aes加密和解密
  16. 阿里云服务器怎么更换ip?
  17. 窗体内公用的数据表,在使用视图和行过滤时的有趣现象
  18. 救救小王吧:如何快速解决图像相似性检测问题?
  19. 图形学基础 (二)关于旋转
  20. 使用WORD宏实现查找带格式的文字并复制到特定地方

热门文章

  1. 你是否希望大前端做服务器合租代管服务?
  2. 凝思操作系统:U盘无法识别和读取问题
  3. VScode 淡绿色界面
  4. Linux之创建组名和删除组名
  5. 布兰迪斯大学计算机美国大学排名,布兰迪斯大学2021年US News美国最佳大学排名第几?...
  6. 会编程的少年有多厉害?8岁女儿写代码哄程序员爸爸开心,网友直呼:破防了
  7. 从学生到社会人_EmbeddedLove
  8. 关于如何发挥最好的学习状态的思考暨《自控力》一书读后感
  9. 奥村マヨ - 見えない翼
  10. Xposed模块初体验——第一篇