CKEditor 5 + SpringBoot实战(四):SpringBoot 实现文件上传
在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,CKEditor插入视频,获取/设置CKEditor内容等。
在本章节中,主要介绍的内容是在SpringBoot中实现图片上传功能,其中包括上传路径的设置,图片路径映射和上传业务代码的编写。
文件上传
所谓的文件上传就是将客户端的资源通过网络传输到服务端,其本质就是IO流操作。服务端通过IO流读取客户端数据,然后对数据进行解析,获取目标文件数据后,将数据存储到服务端磁盘中。
引入依赖
要实现文件上传,首先需要将所需要的依赖包导入到项目中。这里我们仅导入commons-fileupload和commons-io依赖包。通常,commons-fileupload依赖需要和commons-io一起搭配使用,其中封装了大量的用于操作文件上传的功能,可以帮助我们简化文件上传代码的编写。打开pom.xml配置文件,并加入如下的配置:
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version>
</dependency>
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
</dependency>
存储路径
上面我们提到,文件上传的本质就是通过IO流将客户端数据存储到服务端的磁盘上。因此,我们需要在服务端的磁盘上规划一个存储空间,用于存储客户端上传的文件。这里我将客户端上传的文件存储到当前项目的类路径下的images文件夹中。
首先,在com.ramostear.ckeditor.common包中创建一个Consts类,然后通过ClassPathResource类获得当前项目的类路径。代码如下:
package com.ramostear.ckeditor.common;import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;import java.io.IOException;public class Consts {public static String FILE_STORAGE_ROOT = getRootPath();private static String getRootPath(){try {Resource resource = new ClassPathResource("");return resource.getFile().getAbsolutePath();} catch (IOException e) {e.printStackTrace();}return null;}
}
在代码中,获取到的类路径赋值给了公有静态常量 FILE_STORAGE_ROOT,该常量将在图片路径映射和文件上传业务代码中被使用。
上传配置
一般情况下,客户端的数据可以通过Form表单传递到服务端,但如果是图片等大文件数据,服务端将无法直接解析这些数据(如果是图片文件,也可以将图片通过Base64转码后,将获得的二进制文本传递到服务端),因此,我们需要配置一个专门用于解析客户端上传文件的解析器,另外,如果上传的是图片文件,通常需要在上传成功后显示这些图片,在SpringBoot中,客户端是无法直接去加载这些文件的,这就要求我们还得手动去映射图片地址。
下面,将介绍如何在SpringBoot中配置文件上传的相关参数。最简单的配置方式是配置类继承 WebMvcConfigurationSupport类,然后重写其中对应的方法。首先是文件解析器,这里我们实例化一个CommonsMultipartResolver来作为上传文件的解析器,然后设置其允许上传文件的大小和文件的字符编码,代码如下:
@Bean
public CommonsMultipartResolver multipartResolver(){CommonsMultipartResolver resolver = new CommonsMultipartResolver();resolver.setMaxUploadSize(600000000);resolver.setDefaultEncoding("UTF-8");return resolver;
}
提示:
在代码中,setMaxUploadSize()方法用于限制上传文件大小的最大值,单位为字节,如果你不想对上传文件做大小限制,可将值设置为-1,默认值也是-1。
最后,为例能够在客户端浏览器中显示上传的图片,我们还需要覆盖WebMvcConfigurationSupport类中的addResourceHandlers()方法,然后对我们定义的图片上传路径做映射。代码如下:
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/").addResourceLocations("file:"+ Consts.FILE_STORAGE_ROOT+"/images");super.addResourceHandlers(registry);
}
在上述代码中,将"classpath:/static/“和文件上传路径下的图片地址映射为”/**",例如,上传到服务器的图片存储路径为"C:/ckeditor5-springboot/images/demo.png",那么该图片的在客户端浏览器中的请求地址为:“http://localhost:8080/demo.png”。完整的配置类如下:
package com.ramostear.ckeditor.config;import com.ramostear.ckeditor.common.Consts;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;@Configuration
public class MvcConfiguration extends WebMvcConfigurationSupport {@Beanpublic CommonsMultipartResolver multipartResolver(){CommonsMultipartResolver resolver = new CommonsMultipartResolver();resolver.setMaxUploadSize(600000000);resolver.setDefaultEncoding("UTF-8");return resolver;}@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/").addResourceLocations("file:"+ Consts.FILE_STORAGE_ROOT+"/images/");super.addResourceHandlers(registry);}
}
提示:
别忘记添加配置类的@Configuration注解以及配置方法上的@Bean注解。
实现文件上传
以上环节都准备好后,我们将要实现服务端获取客户端上传文件,并保存到磁盘中的功能。首先,定义一个FileManager接口类,并提供文件上传和删除文件方法,代码如下:
package com.ramostear.ckeditor.service;import org.springframework.web.multipart.commons.CommonsMultipartFile;import java.util.Collection;public interface FileManager {String upload(CommonsMultipartFile multipartFile);boolean remove(String url);void remove(Collection<String> urls);
}
upload()方法用于将客户端上传的文件写入到指定的上传目录中,remove()方法在删除内容时被调用。接下来,在FileManagerImpl.java类中实现上述三个方法。
upload
对于文件上传,首先得获取文件存储的路径,然后将上传文件重命名,最后将上传文件数据写入到目标文件中,文件的读写我们将使用CommonsMultipartFile提供的transferTo()方法来实现,代码如下:
@Override
public String upload(CommonsMultipartFile multipartFile) {String storageRoot = Consts.FILE_STORAGE_ROOT+ File.separator+"images";String path = "";String suffix = Objects.requireNonNull(multipartFile.getOriginalFilename()).substring(multipartFile.getOriginalFilename().lastIndexOf("."));String fileName = SIMPLE_DATE_FORMAT.format(new Date())+"-"+ UUID.randomUUID().toString().replaceAll("-","").toLowerCase()+ suffix;File file = new File(storageRoot+File.separator+fileName);if(!file.getParentFile().exists()){file.getParentFile().mkdirs();}try {multipartFile.transferTo(file);path = "/"+fileName;}catch (IOException e){e.printStackTrace();}return path;
}
文件上传成功后,我们需要将文件的相对地址返回到上一层。
remove
删除文件的方法比较简单,在上传目录中查找传入的文件,如果找到,则删除该文件,反之则不做任何操作。代码如下:
@Override
public boolean remove(String url) {String path = Consts.FILE_STORAGE_ROOT+ File.separator+"images"+url;File file = new File(path);if(file.exists() && file.isFile()){return file.delete();}return false;
}
FileManagerImpl.java类的完整代码如下:
package com.ramostear.ckeditor.service.impl;import com.ramostear.ckeditor.common.Consts;
import com.ramostear.ckeditor.service.FileManager;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.commons.CommonsMultipartFile;import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Objects;
import java.util.UUID;@Service(value = "fileManager")
public class FileManagerImpl implements FileManager {private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");@Overridepublic String upload(CommonsMultipartFile multipartFile) {String storageRoot = Consts.FILE_STORAGE_ROOT+ File.separator+"images";String path = "";String suffix = Objects.requireNonNull(multipartFile.getOriginalFilename()).substring(multipartFile.getOriginalFilename().lastIndexOf("."));String fileName = SIMPLE_DATE_FORMAT.format(new Date())+"-"+ UUID.randomUUID().toString().replaceAll("-","").toLowerCase()+ suffix;File file = new File(storageRoot+File.separator+fileName);if(!file.getParentFile().exists()){file.getParentFile().mkdirs();}try {multipartFile.transferTo(file);path = "/"+fileName;}catch (IOException e){e.printStackTrace();}return path;}@Overridepublic boolean remove(String url) {String path = Consts.FILE_STORAGE_ROOT+ File.separator+"images"+url;File file = new File(path);if(file.exists() && file.isFile()){return file.delete();}return false;}@Overridepublic void remove(Collection<String> urls) {if(!CollectionUtils.isEmpty(urls)){urls.stream().allMatch(this::remove);}}
}
提示:
别忘记在实现类上添加@Service注解。
上传控制器
最后,我们通过Spring MVC来实现图片上传控制器。根据查阅官网相关API可知,CKEditor是通过POST请求的方式将名为“upload”的文件提交到后台,后台将数据处理完成后,需要返回如下格式的数据:
{"uploaded":true,"filename":"filename","url":'url'
}
当图片上传成功后,uploaded的值为true,反之为false。
下面是上传图片控制器的详细代码:
package com.ramostear.ckeditor.controller;import com.alibaba.fastjson.JSONObject;
import com.ramostear.ckeditor.service.FileManager;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.commons.CommonsMultipartFile;import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;@RestController
@RequestMapping("/upload")
public class FileUploadController {private final FileManager fileManager;FileUploadController(FileManager fileManager){this.fileManager = fileManager;}@PostMapping("/image")public JSONObject image(@RequestParam(name = "upload")CommonsMultipartFile file){JSONObject json = new JSONObject();if(file == null || file.isEmpty()){json.put("uploaded",false);json.put("url","");return json;}if(StringUtils.isBlank(file.getOriginalFilename()) || !isAllow(file.getOriginalFilename())){json.put("uploaded",false);json.put("url","");return json;}String url = fileManager.upload(file);if(StringUtils.isBlank(url)){json.put("uploaded",false);json.put("url","");return json;}else{json.put("uploaded",true);json.put("url",url);return json;}}private boolean isAllow(String fileName){String[] allowFiles = {".gif",".png",".jpg",".jpeg",".bpm",".svg"};String suffix = fileName.substring(fileName.lastIndexOf("."));List<String> suffixList = Arrays.stream(allowFiles).collect(Collectors.toList());return suffixList.contains(suffix);}
}
其中,isAllow()方法用于限定上传的文件只能是图片类型,在FileUploadController类中,使用基于构造方法注入的方式将FileManager实例化对象注入到其中,并完成图片上传操作。另外,在该类中使用到了StringUtils工具类和Alibaba FastJson类,因此,你还需要向pom.xml文件中添加如下的依赖:
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.57</version>
</dependency>
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId>
</dependency>
上传测试
由于目前还未搭建前端页面,因此使用浏览器来测试文件上传功能,但我们可以借助Postman来测试文件上传功能。打开Postman软件,然后新建一个请求,请求方式为POST,接着在地址栏输入“http://localhost:8080/upload/image ” ;最后,在Body选项栏下,数据提交格式为form-data,KEY的值为“upload”,类型为"file",VALUE为待上传的图片。配置完成后点击"Send"按钮进行测试。测试流程如下图:
图片上传成功后,我们可以在项目的target/classes/images/目录下查看到刚刚上传的图片“20200707-3edd0218d4194f4f803e710573f07390.png”,如下图:
除此之外,我们开可以在浏览器中输入“ http://localhost:8080/20200707-3edd0218d4194f4f803e710573f07390.png ”来访问刚才上传的图片,如下图:
本章小结
在本章内容中,详细介绍了使用SpringBoot实现文件上传的详细过程,并使用Postman工具对文件上传功能做了测试。在下一章中,将介绍SpringBoot和Freemaker模板引擎的整合。
未经作者允许,请勿擅自转载,转载请注明文章作者和出处。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- DES、AES、RSA、国密序列算法笔记
DES 加密算法DES 的密钥有8个字节64位,其中8位为校验位,实际参与加密的有效密钥共56位。这是一个迭代的分组密码,其中加密的文本块被分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环…...
2024/4/16 7:06:42 - Linux下悟空crm安装
悟空CRM是一款开源的客户关系管理系统 ,采用PHP及JAVA架构。支持云服务SAAS服务,可为企业提供多种行业的CRM解决方案。前提条件 你要保证你的Linux下安装了redis,mysql,tomcat,jdk 通过码云或github下载 wukongcrm-72crm-java-master.zip ,然后解压到指定目录:unzip wukongc…...
2024/4/20 4:41:22 - Android学习笔记之——UI组件/TextView
TextView主界面跳转按钮跳转按钮点击事件Java代码activity_text_view.xml中<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.and…...
2024/3/28 18:42:42 - Python笔记——贰
接上一篇, 1,高阶函数:一个函数接收另一个函数作为参数 def add(x, y, f):return f(x) + f(y)add(-5, 6, abs) 112,map() 函数接收两个参数,一个是函数,一个是Iterable,传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 def f(x):return x * x #把f…...
2024/4/16 7:06:37 - java面试要点--==和equals的区别,以及字符串和整型的转化
基本数据类型: ==:比较的是变量存储的值是否相等 equals:基本数据类型无法使用该方法 引用数据类型: ==:比较的是对象的地址 equals:若没有对equals重写,则比较的是对象的地址是否相同 若对equals重写则比较的是指向对象的内容是否相同(由如何重 写决定) 注:比较两个字…...
2024/4/16 7:06:37 - css有哪些新特性
一、选择器: E:nth-child(n) 选择器匹配其父元素的第n个子元素,不论元素类型,n可以使数字,关键字,或公式 E:nth-of-type(n) 选择与之其匹配的父元素的第N个子元素 E:frist-child 相对于父级做参考,“所有”子元素的第一个子元素,并且“位置”要对应 E:frist-of-type 相…...
2024/4/20 5:11:18 - springboot与shiro详细整合(redis缓存)
注意:RedisCacheManager、RedisManager、RedisSessionDAO都是shiro包中的类ShiroConfig的配置package cc.mrbird.febs.common.authentication;import at.pollux.thymeleaf.shiro.dialect.ShiroDialect; import cc.mrbird.febs.common.properties.FebsProperties; import lombo…...
2024/4/19 16:48:44 - exercise03 打印出所有的 “水仙花数 “
打印出所有的 "水仙花数 " 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 获得a的y次方的方法 Math.po…...
2024/4/16 7:07:33 - 二分(C语言)
整数二分基本思想在一个区间内,二分边界,找到一个性质,使划分的区域一边满足性质,一边不满足性质,每次选择答案所在区间进行下一步处理,最终找到符合那个性质的数。基本模板作者:yxc 链接:https://www.acwing.com/blog/content/277/ 来源:AcWing bool check(int x) {/…...
2024/5/5 10:10:15 - 抱歉,×××已停止运行
现在开始实训,憨憨的我老是遇见各种奇奇怪怪的问题。 傻傻的我还去问别人觉得可以一看这个就可以知道哪儿出了错误,为我的傻哭三分钟。 后来问了老师,给了老师那些报错老师给了解决方法。 当遇见这种问题的时候先看看AndroidManifest里面有没有给Activity权限。要是没有给的…...
2024/5/5 9:30:45 - WPF中的触发器Triggers(1)
Trigger : 监测依赖属性的变化、触发器生效MultiTrigger : 通过多个条件的设置、达到满足条件、触发器生效DataTrigger : 通过数据的变化、触发器生效MultiDataTrigger : 多个数据条件的触发器EventTrigger : 事件触发器, 触发了某类事件时, 触发器生效。https://www.cnblogs.c…...
2024/4/16 7:07:28 - Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /
Servlet 什么是服务器服务器就是一台高性能电脑 电脑上安装了提供服务的软件就称为 xxx服务器 举例:邮件服务器: 就是在电脑上安装了提供邮件收发服务的软件 ftp服务器: 就是在电脑上安装了提供文件上传下载服务的软件 数据库服务器: 在电脑上安装了提供数据增删改查服务的软件…...
2024/4/16 7:07:58 - 学习笔记:linux tar 批量提取指定文件
linux tar 命令默认不支持批量提取 .tar 文件中的指定文件, 如果需要批量提取,可参考以下方式: for tar in *.tar; do tar -xvf $tar; done解压当前目录下所有 .tar 中的 a.txt 文件至指定目录 /tmp/dir/ 下: for tar in *.tar; do tar -C /tmp/dir/ -xvf $tar *a.txt; d…...
2024/4/4 20:36:59 - Html.BeginForm数据操作。
使用Html.BeginForm 提交方式,在提交按钮处type 设定为提交框 submit,然后呢其他所有dom name设定为对应 model的属性,提交他的value中对应的control中。 @using(Html.BeginForm(“AddMemberBaseInfo”, “MemberManagement”,FormMethod.Post, new { enctype = “multipart…...
2024/4/26 13:46:06 - $ vue-cli-service serve ‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 error Command failed with exit code 1
跟同事合作项目时 yarn serve项目好几次没起起来,然后报如下错误:我以为我install到了,但是一看没有node_modules模块,所以yarn install或者npm install一下就好了...
2024/5/5 4:04:00 - Amplitude 和 Magnitude的区别
转自https://blog.csdn.net/obama0111/article/details/88573967...
2024/5/5 6:19:53 - 常用Visual Studio Code快捷键
常规Ctrl+Shift+P,F1显示命令选项板 Ctrl+P快速打开,转到文件… Ctrl+Shift+N新建窗口/实例 Ctrl+Shift+W关闭窗口/实例 Ctrl+,用户设置 Ctrl+K Ctrl+S键盘快捷键基本编辑 Ctrl+X剪切线(空选择) Ctrl+C复制行(空选择) Alt+↑/↓上移/下移+Alt+↓/↑上/下复制行 Ctrl+Shi…...
2024/5/5 9:08:47 - 数据结构与算法:动态数组
线性表线性表是具有n个相同类型的元素的的有限序列。数组是一种类,顺序存储的线性表,所有元素的内存地址是连续的。数组的内存空间:数组有个缺点,定了以后无法修改数组的大小。动态数组java中有自带的ArrayList,这里自己写一个简易的的ArrayList类,只用来存储int类型的数据…...
2024/4/19 2:57:52 - MyBatis框架一
1. MyBatis框架的作用MyBatis框架的主要作用是简化持久层开发。当使用MyBatis处理数据的增删改查时,只需要定义访问数据的抽象方法,并配置该抽象方法对应的SQL语句即可!持久层:解决项目中数据持久化处理的组件。数据持久化:将数据永久的保存下来,即将数据存储在硬盘等可以…...
2024/4/16 7:08:44 - C语言字符串和格式化输入/输出
1.字符串简介字符串是一个或多个字符的序列例: "Hello world"注: 双引号不是字符串的一部分(仅告知编译器它括起来的是字符串)2.char类型数组和null字符(\0)(1).C语言没有专门用于存储字符串的变量类型,字符串都被存储在char类型的数组中(2).数组由连续的存储单…...
2024/4/16 7:07:43
最新文章
- Git-flow分支管理与Aone-flow分支管理对比
Git-flow分支管理与Aone-flow分支管理对比 git-flow分支管理: master: 主分支,主要用来版本发布。 hotfix:线上 bug 紧急修复用到的临时分支。这个分支用来修复主线master的BUG release(预发布分支):rel…...
2024/5/5 12:37:26 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - java的gradle,maven工程中使用selenium
一、下载selenium库 (1)gradle工程 工程中会有一个build.gradle.kts的文件,这个文件可以定制 Gradle 的行为 在文件中添加下面代码,然后sync // implementation ("org.seleniumhq.selenium:selenium-java:4.19.1") …...
2024/5/5 1:15:36 - 解决npm install安装node-sass包容易失败的问题
具体问题如下: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: XXX3.4.0 npm ERR! Found: webpack5.31.2 npm ERR! node_modules/webpack npm ERR! peer webpack”^4.0.0 || ^5.0.0″ from html-…...
2024/5/4 7:13:16 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/4 23:55:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/4 18:20:48 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/4 23:55:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57