MultipartFile与File
文章目录
MultipartFile
一、概述
二、MultipartFile常用方法
三、Springboot与MultipartFile的使用
3.1 设置文件上传大小限制
方式一
方式二
3.2 Springboot上传单个文件,包含其他参数
3.3 Springboot上传多个文件,包含请求体
四、MultipartFile中transferTo方法的坑
4.1 调用tansferTo()方法后,再次获取file.getInputStream()方法时,报临时文件异常
源码分析
4.2 MultipartFile调用transferTo传入相对路径报FileNotFoundException
解决方法
五、MultipartFile与File文件互转
5.1 MultipartFile转换为File文件
5.1.1 MultipartFile.transferTo(File dest)
5.1.2 使用FileUtils.copyInputStreamToFile()
5.2 File转换为MultipartFile文件
5.2.1 使用org.springframework.mock.web.MockMultipartFile(不推荐)
5.2.2 使用CommonsMultipartFile
MultipartFile
一、概述
MultipartFile为org.springframework.web.mutipart包下的一个类,也就是说如果想使用MultipartFile这个类就必须引入spring框架,换句话说,如果想在项目中使用MultipartFile这个类,那么项目必须要使用spring框架才可以,否则无法引入这个类。
以下基于spring-web.5.2.9.RELEASE源码了解一下MultipartFile
/*** A representation of an uploaded file received in a multipart request.** <p>The file contents are either stored in memory or temporarily on disk.* In either case, the user is responsible for copying file contents to a* session-level or persistent store as and if desired. The temporary storage* will be cleared at the end of request processing.** @author Juergen Hoeller* @author Trevor D. Cook* @since 29.09.2003* @see org.springframework.web.multipart.MultipartHttpServletRequest* @see org.springframework.web.multipart.MultipartResolver*/
public interface MultipartFile extends InputStreamSource {
MultipartFile注释说明
第一句:一种可以接收使用多种请求方式来进行上传文件的代表形式。也就是说,如果你想用spring框架来实现项目中的文件上传功能,则MultipartFile可能是最合适的选择,而这里提到的多种请求方式则可以通俗理解为以表单的形式提交。
第二句:这个文件内容可以存储到内存中或者存储在磁盘的临时位置上。
第三句:无论发生哪种情况,用户都可以自由地拷贝文件内容到session存储中,或者以一种永久存储的形式进行存储,如果有需要的话。
第四句:这种临时性的存储在请求结束之后将会被清除掉。
二、MultipartFile常用方法
首先MultipartFile是一个接口,并继承自InputStreamSource,且在InputStreamSource接口中封装了getInputStream方法,该方法的返回类型为InputStream类型,这也就是为什么MultipartFile文件可以转换为输入流。通过以下代码即可将MultipartFile格式的文件转换为输入流。
multipartFile.getInputStream();
@GetMapping("/uploadFile")
public ApiResult test(@RequestParam MultipartFile uploadFile) throws IOException {// 原文件名称System.out.println("uploadFile.getOriginalFilename() = " + uploadFile.getOriginalFilename());// 文件的接收参数 @RequestParam MultipartFile uploadFile中的 uploadFileSystem.out.println("uploadFile.getName() = " + uploadFile.getName());// 文件的类型System.out.println("uploadFile.getContentType() = " + uploadFile.getContentType());System.out.println("uploadFile.getResource() = " + uploadFile.getResource());System.out.println("uploadFile.getBytes() = " + uploadFile.getBytes());// 文件大小System.out.println("uploadFile.getSize() = " + uploadFile.getSize());return ApiResult.ok();
}
上传一张图片看结果:a.png
结果:
uploadFile.getOriginalFilename() = a.png
uploadFile.getName() = uploadFile
uploadFile.getContentType() = image/jpeg
uploadFile.getResource() = MultipartFile resource [file]
uploadFile.getBytes() = [B@1fa8cd72
uploadFile.getSize() = 143
三、Springboot与MultipartFile的使用
3.1 设置文件上传大小限制
springboot默认文件上传大小为1M, 若超过1M会抛出异常,如下:
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:628) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at java.io.FilterInputStream.read(Unknown Source) ~[na:1.8.0_131]at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:98) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:68) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:293) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.connector.Request.parseParts(Request.java:2902) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.connector.Request.parseParameters(Request.java:3242) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.connector.Request.getParameter(Request.java:1136) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:381) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:84) ~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) [tomcat-embed-core-8.5.34.jar:8.5.34]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.34.jar:8.5.34]at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_131]at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_131]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.34.jar:8.5.34]at java.lang.Thread.run(Unknown Source) [na:1.8.0_131]
方式一
application.properties配置文件
# 上传的单个文件的大小最大为3MB
spring.servlet.multipart.max-file-size = 3MB
# 单次请求的所有文件的总大小最大为9MB
spring.servlet.multipart.max-request-size = 9MB# 如果是想要不限制文件上传的大小,那么就把两个值都设置为-1
方式二
在配置类中配置MultipartConfigElement方法,并将配置类注册到容器中,代码示例:
@Configuration
@SpringBootApplication
@MapperScan("com.demo.explain.mapper")
public class StoreApplication {public static void main(String[] args) {SpringApplication.run(StoreApplication.class, args);}@Beanpublic MultipartConfigElement getMultipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();// DataSize dataSize = DataSize.ofMegabytes(10);// 设置文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TBfactory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES));factory.setMaxRequestSize(DataSize.of(10, DataUnit.MEGABYTES));// 设置总上传数据总大小10Mreturn factory.createMultipartConfig();}
}
全局异常捕获
package com.example.demo.config;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.multipart.MaxUploadSizeExceededException;// 全局异常捕获类
@ControllerAdvice
public class GlobalExceptionHandler {// 若上传的文件大小超过配置类中配置的指定大小后会触发下面的异常@ExceptionHandler(MaxUploadSizeExceededException.class)public void defultExcepitonHandler(MaxUploadSizeExceededException ex) {log.info("[exceptionHandler] maxUploadSizeExceededExceptionHandler :"+e.getMessage(),e);return ResponseFactory.build(900001,"文件大小超过限制");}
}
3.2 Springboot上传单个文件,包含其他参数
@RestController
@RequestMapping("/test")
public class MultipartFileController {@PostMapping("/upload")public String multipartFileTest(@ApiParam(value = "multipartFile") @RequestParam MultipartFile multipartFile,@ApiParam(value = "用户名") @RequestParam String userName) throws Exception{return "成功";}
}
3.3 Springboot上传多个文件,包含请求体
Controller层代码如下:请求体需要使用@Valid注解而不是@RequestBody
@RestController
@RequestMapping("/test")
public class MultipartFileController {@PostMapping("/upload")public String multipartFileTest(@ApiParam(value = "multipartFiles") @RequestParam MultipartFile[] multipartFiles,@Valid UserDO userDO) throws Exception{return "成功";}
四、MultipartFile中transferTo方法的坑
4.1 调用tansferTo()方法后,再次获取file.getInputStream()方法时,报临时文件异常
2023-02-06 10:00:20.557 ERROR 14780 --- [http-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exceptionjava.io.FileNotFoundException: C:\Users\AppData\Local\Temp\work\demo\upload_file.tmp (系统找不到指定的文件。)at java.io.FileInputStream.open0(Native Method) ~[na:1.8.0_322]at java.io.FileInputStream.open(FileInputStream.java:195) ~[na:1.8.0_322]at java.io.FileInputStream.<init>(FileInputStream.java:138) ~[na:1.8.0_322]at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.getInputStream(DiskFileItem.java:198) ~[tomcat-embed-core-9.0.65.jar:9.0.65]at org.apache.catalina.core.ApplicationPart.getInputStream(ApplicationPart.java:100) ~[tomcat-embed-core-9.0.65.jar:9.0.65]at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile.getInputStream(StandardMultipartHttpServletRequest.java:254) ~[spring-web-5.3.22.jar:5.3.22]at com.tanwei.spring.app.controllers.FileController.file(FileController.java:29) ~[classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322]
FileNotFoundException异常就是文件找不到了,也就是说tansferTo()可能在传输完成后把临时文件删除了,这是肯定的,但是答案只能说是对一半,我们将一步一步的进行源码分析
源码分析
以下基于spring-web.5.2.9.RELEASE源码分析MultipartFile的tansferTo()方法
调用tansferTo()方法,Spring Boot Web默认是调用StandardMultipartHttpServletRequest.StandardMultipartFile.tansferTo()方法,如下所示:
private static class StandardMultipartFile implements MultipartFile, Serializable {//......省略其他内容@Overridepublic void transferTo(File dest) throws IOException, IllegalStateException {this.part.write(dest.getPath());if (dest.isAbsolute() && !dest.exists()) {// Servlet 3.0 Part.write is not guaranteed to support absolute file paths:// may translate the given path to a relative location within a temp dir// (e.g. on Jetty whereas Tomcat and Undertow detect absolute paths).// At least we offloaded the file from memory storage; it'll get deleted// from the temp dir eventually in any case. And for our user's purposes,// we can manually copy it to the requested location as a fallback.FileCopyUtils.copy(this.part.getInputStream(), Files.newOutputStream(dest.toPath()));}}@Overridepublic void transferTo(Path dest) throws IOException, IllegalStateException {FileCopyUtils.copy(this.part.getInputStream(), Files.newOutputStream(dest));}}
我们主要看一下.tansferTo(File dest)这个方法里的this.part.write(dest.getPath());代码,这里的part实现是ApplicationPart,如下所示:
public class ApplicationPart implements Part {//......省略其他内容public void write(String fileName) throws IOException {// 构建一个需要存储的文件File file = new File(fileName);// 判断文件的地址是否是一个绝对路径地址,如C://demo/xxx.txt,返回true// 若文件路径不是绝对路径,将创建一个临时目录,所以这里也是经常会出现问题的地方,在使用multipartFile.tansferTo()的时候最好给绝对路径if (!file.isAbsolute()) {// 如果不是一个绝对路径地址,则在this.location下创建// this.location是一个临时文件对象,地址(C:\Users\xxxx\AppData\Local\Temp\tomcat.8090.3830877266980608489\work\Tomcat\localhost)file = new File(this.location, fileName);}try {this.fileItem.write(file);} catch (Exception var4) {throw new IOException(var4);}}
}
——
this.fileItem.write(file);这行代码是主要的核心代码,我们继续跟进去查看一下具体做了什么,如下所示:
public class DiskFileItem implements FileItem {//......省略其他内容public void write(File file) throws Exception {// 判断文件项是否缓存在内存中的,这里我们没设置,一般都是存在上面的临时磁盘中if (this.isInMemory()) {FileOutputStream fout = null;try {fout = new FileOutputStream(file);fout.write(this.get());fout.close();} finally {IOUtils.closeQuietly(fout);}} else {// 主要看一下这个代码块// 获取文件项的存储位置,即你上传的文件在磁盘上的临时文件File outputFile = this.getStoreLocation();if (outputFile == null) {throw new FileUploadException("Cannot write uploaded file to disk!");}// 获取文件长度this.size = outputFile.length();if (file.exists() && !file.delete()) {throw new FileUploadException("Cannot write uploaded file to disk!");}// 之所以不能再调用file.getInputStream()方法,原因就是在这// fileA.renameTo(fileB)方法:// 1) 当fileA文件信息(包含文件名、文件路径)与fileB全部相同时,只是单纯的重命名// 2) 当fileA文件信息(特别是文件路径)与fileB不一致时,则存在重命名和剪切,这里的剪切就会把临时文件删除,并将文件复制到fileB位置// 所以,在调用file.getInputStream()时,file获取的还是原始的文件位置,调用transerTo()方法后(其实调用了renameTo()),原始文件已经不存在了// 故而抛出FileNotFoundException异常if (!outputFile.renameTo(file)) {BufferedInputStream in = null;BufferedOutputStream out = null;try {in = new BufferedInputStream(new FileInputStream(outputFile));out = new BufferedOutputStream(new FileOutputStream(file));IOUtils.copy(in, out);out.close();} finally {IOUtils.closeQuietly(in);IOUtils.closeQuietly(out);}}}}}
4.2 MultipartFile调用transferTo传入相对路径报FileNotFoundException
错误代码
@PostMapping("/uploadFile")
public String uploadImg(@RequestParam("file") MultipartFile file) {String baseDir = "./imgFile"; // 这里不能直接使用相对路径if (!file.isEmpty()) {String name = file.getOriginalFilename();String prefix = name.lastIndexOf(".") != -1 ? name.substring(name.lastIndexOf(".")) : ".jpg";String path = UUID.randomUUID().toString().replace("-", "") + prefix;try {// 这里代码都是没有问题的File filePath = new File(baseDir, path);// 第一次执行代码时,路径是不存在的logger.info("文件保存路径:{},是否存在:{}", filePath.getParentFile().exists(), filePath.getParent());if (!filePath.getParentFile().exists()) { // 如果存放路径的父目录不存在,就创建它。filePath.getParentFile().mkdirs();}// 如果路径不存在,上面的代码会创建路径,此时路径即已经创建好了logger.info("文件保存路径:{},是否存在:{}", filePath.getParentFile().exists(), filePath.getParent());// 此处使用相对路径,似乎是一个坑!// 相对路径:filePath// 绝对路径:filePath.getAbsoluteFile()logger.info("文件将要保存的路径:{}", filePath.getPath());file.transferTo(filePath);logger.info("文件成功保存的路径:{}", filePath.getAbsolutePath());return "上传成功";} catch (Exception e) {logger.error(e.getMessage());}}return "上传失败";
}
一旦执行到file.transferTo(filePath),就会产生一个FileNotFoundException,如下图:
2020-11-27 10:15:06.522 ERROR 5200 --- [nio-8080-exec-1] r.controller.LearnController : java.io.FileNotFoundException: C:\Users\Alfred\AppData\Local\Temp\tomcat.8080.2388870592947355119\work\Tomcat\localhost\ROOT\.\imgFile\684918a520684801b658c85a02bf9ba5.jpg (系
原理在上面那个问题中已经分析过,void transferTo(File dest)内部若判断文件路径不是绝对路径,则会创建一个临时目录出来
解决方法
String baseDir = "./imgFile";
File saveFile= new File(baseDir, path);
//修改此处传如的参数,改为文件的绝对路径
multipartFile.transferTo(saveFile.getAbsoluteFile());
五、MultipartFile与File文件互转
5.1 MultipartFile转换为File文件
5.1.1 MultipartFile.transferTo(File dest)
若MultipartFile对象是在controller层传入,回话结束后MultipartFile文件会自动清理; 若MultipartFile对象是自己创建出来的,则使用完需要自己手动删除文件。
@PostMapping("/upload")public String multipartFileTest(@ApiParam(value = "multipartFile") @RequestParam MultipartFile multipartFile,@ApiParam(value = "用户名") @RequestParam String userName) throws Exception{//考虑不同浏览器上传文件会带入盘符等路径信息,此处处理一下String fileName = org.apache.commons.io.FilenameUtils.getName(multipartFile.getOriginalFilename());File saveFile= new File("/app/home/data/",fileName );//修改此处传如的参数,改为文件的绝对路径multipartFile.transferTo(saveFile.getAbsoluteFile());return "成功";}
5.1.2 使用FileUtils.copyInputStreamToFile()
导入依赖包
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.7</version>
</dependency>
File file = new File(path,"demo.txt");// 得到MultipartFile文件MultipartFile multipartFile = getFile();// 把流输出到文件FileUtils.copyInputStreamToFile(multipartFile.getInputStream(),file);
5.2 File转换为MultipartFile文件
5.2.1 使用org.springframework.mock.web.MockMultipartFile(不推荐)
(1):使用org.springframework.mock.web.MockMultipartFile 需要导入spring-test.jar
该方法需要使用spring-test.jar包,生产环境一般是跳过测试包的,因此可能会导致其他问题,所以尽量不要使用这种方式
public static void main(String[] args) throws Exception {String filePath = "F:\\test.txt";File file = new File(filePath);FileInputStream fileInputStream = new FileInputStream(file);// MockMultipartFile(String name, @Nullable String originalFilename, @Nullable String contentType, InputStream contentStream)// 其中originalFilename,String contentType 旧名字,类型 可为空// ContentType.APPLICATION_OCTET_STREAM.toString() 需要使用HttpClient的包MultipartFile multipartFile = new MockMultipartFile("copy"+file.getName(),file.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(),fileInputStream);System.out.println(multipartFile.getName()); // 输出copytest.txt
}
5.2.2 使用CommonsMultipartFile
导入依赖包
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version>
</dependency>
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.io.IOUtils;
import org.springframework.http.MediaType;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;public class Test {public static MultipartFile getMultipartFile(File file) {//如果传输有点问题可能传输的类型有点不同,可以试下更改为MediaType.TEXT_PLAIN_VALUEFileItem item = new DiskFileItemFactory().createItem("file", MediaType.MULTIPART_FORM_DATA_VALUE, true, file.getName());try (InputStream input = new FileInputStream(file);OutputStream os = item.getOutputStream()) {// 流转移IOUtils.copy(input, os);} catch (Exception e) {throw new IllegalArgumentException("Invalid file: " + e, e);}return new CommonsMultipartFile(item);}
}
相关文章
- 二分贪心合集
题目描述 小蓝发现了一个有趣的数列,这个数列的前几项如下: 1,1,2,1,2,3,1,2,3,4,⋯1,1,2,1,2,3,1,2,3,4,⋯ 小蓝发现,这个数列前 11 项是整数 11,接下来 22 项是整数 11 至 22,接下来 33 项是整数 11 至 33&#x…...
2023/5/22 19:59:26 - [C++笔记]动态内存管理(new与delete)
new和delete操作符 C语言内存管理方式在C中可以继续使用,但有些场合无法达到需要的效果,且使用起来比较麻烦,未此C提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。 格式: new data_type;void Te…...
2023/4/14 19:21:44 - Xcode完全卸载(重装)
本文介绍完全卸载xcode后重装。如果你是打开了xcode14.3 然后 老的14.1也跑不动了的这种场景(卸载14.3也不行),不妨先试试直接删除如下路径,重新打开老xcode(会自动重新下载这个目录) /Library/Developer/…...
2023/5/27 17:43:04 - 102挂了不用怕
不小心把集群其中一个节点安装路径覆盖了,不要慌,不用重新装集群,之前配置好的集群节点之间可以相互通信,所以把缺少的文件从另外一个节点传过来即可。 比如你有102 103 104 3个节点,你把102搞坏了,此时可…...
2023/6/7 0:08:39 - 【 初识 HTTP 协议 】
文章目录一、概念二、发展历程三、应用场景四、理解 "应用层协议"五、HTTP 协议的工作过程六、HTTP 协议格式一、概念 HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议 二、发展历程 HTTP 诞生与1991年. 目前已经发展为最主流使用的一种应用层协…...
2023/5/20 5:13:08 - 冯诺依曼体系
冯诺依曼体系冯诺依曼体系总结操作系统概念理解管理应用总结冯诺依曼体系 输入设备:键盘,鼠标 存储器:内存,特点是掉电易失,与之相对的称为外设 中央处理器:即CPU,包括运算器,控制器…...
2023/5/25 6:44:46 - 【软件工程——UML基础教程】
UML基础教程1.前言1.1 前言1.2 UML概述1.2.1 UML简介1.2.2 UML模型图的构成1.3 UML事物1.3.1 构件事物1.3.2 行为事物1.3.2 分组事物1.3.4 注释事物1.4 UML关系1.5 各UML图及特征1.5.1 用例图1.5.2 类图1.5.3 对象图1.5.4 顺序图1.5.5 协作图1.5.6 状态图1.5.7 活动图1.5.8 构件…...
2023/6/6 8:01:46 - “蓝桥杯”递推和递归(一)——取数位
1. 算法简介 递推和递归虽然叫法不同,但它们的基本思想是一致的,在很多程序中,这两种算法可以通用,不同的是递推法效率更高,递归法更方便阅读。 (1)递推法 递推法是一种重要的数学方法&#…...
2023/5/22 19:59:26 - 20-链表练习-LeetCode142环形链表II
题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部…...
2023/6/5 8:38:38 - 153.网络安全渗透测试—[Cobalt Strike系列]—[生成hta/exe/宏后门]
我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!! 文章目录一、后门简介1、hta后门2、exe后门3、宏病毒后门二、生成后门并测试0、测试环境1、生成hta后门并测试2、生成exe后门并测试3、生成宏病毒后门…...
2023/5/22 17:31:24 - 2022年亏损超10亿,告别野蛮成长的众安在线急需新“引擎”
2023年3月21日,众安在线披露了2022年财报,营收233.52亿元,同比增长6.44%;净亏损16.33亿元,去年同期净利润为11.6亿元,同比由盈转亏。 尽管众安在线再次身陷亏损的泥潭,但投资者却没有选择逃离。…...
2023/4/16 6:12:32 - Rust学习总结之String
有编程经验的相信没少和字符串打交道,无论是C/C,还是现在比较流行的Python,字符串都是用的非常多的类型。在Rust中字符串类型同样有举足轻重的作用,几乎编码都离不开字符串。下面将详细学习Rust中的String类型。 一:创…...
2023/6/5 16:49:27 - “先人一步”!从华为P60看手机品牌如何找到新趋势、新玩法、新增量
对大多数人来说,换新手机是一件充满新鲜感的事,新机到手让人兴奋,可更让老蔡这样的科技发烧友们兴奋的是“比别人更快拿上新机”。朋友圈里晒图,一群人向他询问使用体验,总能让他获得一种不错的“尝鲜感”。这种现象&a…...
2023/4/21 11:50:38 - Vue 父子组件通信$ref调用踩坑
场景: 父组件中给子组件传值,然后在父组件中触发事件,同时更新传递给子组件的某个变量的值再调用子组件函数,此时如果直接调用,会导致父组件传递给子组件的值不能马上获取到!! 下面先看一段代码…...
2023/5/6 15:14:06 - shiro授权Shiro+jsp整合Springboot -Shiro
Shiro授权 一、授权 授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的。 二、关键对象 授权可简单理解为who对what(which)进行How操作: Who&…...
2023/6/3 18:52:17 - 打印菱形、三角形-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第2章-课后作业)
【案例2-10】打印菱形、三角形 一、案例描述 考核知识点 for双重循环 练习目标 掌握for循环应用。打印出菱形打印出三角形。 需求分析 在本案例中我们将用JavaScript代码在页面中用“*”打印出菱形和三角形。 案例分析 菱形效果如图2-16所示。输入菱形行数6打印菱形 三角形…...
2023/5/11 6:15:22 - flink开发常见问题 —— flink-kafka 依赖版本冲突问题
问题描述 由于 flink / kafka 的版本不断更新,创建项目的时候就应当考虑清楚这几个依赖库的版本问题,尽可能地与实际场景保持一致,比如服务器上部署的 kafka 是哪个版本,flink 是哪个版本,从而确定我们需要开发的是哪…...
2023/6/6 23:36:21 - 汇编语言(1)——寄存器
文章目录1.通用寄存器2.字在寄存器中存储3.确定物理地址的方法4.内存分段表示法5.CS、IP寄存器及代码段6.jmp指令1.通用寄存器 8086中的所有寄存器都是16位的,可以存放两个字节,AX、BX、CX、DX这四个寄存器用来存放一般性的数据,统称为通用寄…...
2023/5/20 21:27:50 - Netty权威指南总结(三)
五、Netty实战技巧:(一) 多线程编程实践:1. Netty中使用多线程的技巧:创建两个NioEventLoopGroup,用于逻辑隔离NIO Acceptor和NIO IO线程。尽量不要在ChannelHandler中启动用户线程(解码后用于将POJO消息派发到后端业务…...
2023/6/5 6:35:03 - 俄语语音语调的7个调型,柯桥俄语培训
在俄语语调的学习和教授过程中,通常将一个句子分为三个部分:调心前部、调心、调心后部。在发音时,各调型内词与词之间的界限消失,各词的首尾音节紧密衔接成为一个整体,而句子中有一个重读音节在语调上和意义上作为该句…...
2023/5/22 19:59:27
最新文章
- day11 -- 存储过程+触发器+事物处理
学习内容 什么是存储过程 如何使用存储过程 学习记录 存储过程 经常会有一个完整的操作需要多条语句才能完成。 此外,需要执行的具体语句及其次序也不是固定的,它们可能会根据条件而选择性的执行。 那应该怎么办呢?可以创建存储过程。 存储…...
2023/6/7 0:30:11 - 地震勘探基础(十一)之水平叠加处理
水平叠加处理 地震资料经过预处理,静校正,反褶积,速度分析和动校正处理后就要进行水平叠加处理。地震水平叠加处理是地震常规处理的重要环节。 假设一个共中心点道集有三个地震道,经过速度分析和动校正以后,水平叠加…...
2023/6/7 0:29:44 - ubuntu18 卸载.deb安装的mysql8
可以按照以下步骤来卸载在Ubuntu 18上通过.deb安装的MySQL 8: 停止MySQL服务: sudo systemctl stop mysql 删除MySQL包: sudo dpkg -r mysql-server 如果你也安装了其他MySQL相关包,你可以使用相同的命令来删除它们。删除MySQL配置…...
2023/6/7 0:29:30 - Android Bluetooth(蓝牙) - 概念和框架
目录 基本概念: 蓝牙的总体流程图 参考文献: 基本概念: RF(RADIO):射频层,本地蓝牙数据通过射频发送给远端设备,并且通过射频接收自远端蓝牙设备的数据BB(BASEBAND):基带层,进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。LMP(LINK …...
2023/6/7 0:28:20 - 第十章:创建和管理表
第十章:创建和管理表 10.1:基础知识 一条数据存储的过程 存储数据是处理数据的第一步。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 在MySQL中,一个完…...
2023/6/7 0:28:04 - 数据中台浅析——概念、架构以及未来
数据中台浅析 1. 引言 在当今的数字化时代,数据被誉为"新的石油",越来越多的企业和组织开始深度挖掘数据的价值。在这个过程中,数据中台逐渐成为了数据管理和分析的核心架构,让我们来深入了解一下它。 1.1 数据中台…...
2023/6/7 0:27:52 - nginx+tomcat 负载均衡、动静分离集群
文章目录 一、NginxTomcat负载均衡的组合原因1.1 Nginx实现负载均衡的原理1.2 Nginx实现负载均衡的主要配置项1.3 NginxTomcat负载均衡的组合的优点1.4 NginxTomcat负载均衡的实验设计 二、动静分离部署2.1 部署TOMCAT后端服务器2.2部署nginx服务器2.3安装nginx动态服务器 一、…...
2023/6/7 0:27:37 - WPF 学习:如何照着MaterialDesign的Demo学习
文章目录 往期回顾对应视频资源如何照着wpf项目学习找到你想要抄的页面查找对应源码演示示例如何认清页面元素抄袭实战 项目地址总结 往期回顾 WPF Debug运行是 实时可视化树无效,无法查看代码 WPF MaterialDesign 初学项目实战(0):github …...
2023/6/7 0:27:23 - 《Lua程序设计》--学习1
前言: --> 表示一条语句的输出或表达式求值的结果 -- 单行注释 > 标注 一些代码需要在交互模式下输入 如果需要打印表达式求值的结果,必须在每个表达式前加上一个等号 <--> 表示两者完全等价 语言基础 我们将Lua语言执行的每一…...
2023/6/7 0:26:34 - 使用maven-assembly-plugin将 system 依赖范围的jar以class 方式打包进 jar包中
List item 背景描述 服务A 有本地系统依赖(scope system)如果服务A作为普通服务使用没有任何问题,但如果将服务A 以jar 包方式 提供给 服务B使用,那么服务B在编译的时候就有可能报错,因为找不到服务A 依赖的本地Jar…...
2023/6/7 0:26:23 - Hive执行计划之一文读懂Hive执行计划
目录 文章目录 概述1.hive执行计划的查看2.学会查看Hive执行计划的基本信息3.执行计划步骤操作过程4.explain extended 概述 Hive的执行计划描述了一个hiveSQL语句的具体执行步骤,通过执行计划解读可以了解hiveSQL语句被解析器转换为相应程序语言的执行逻辑。通过…...
2023/6/7 0:26:06 - Python 将 CSV 分割成多个文件
文章目录 使用 Pandas 在 Python 中创建 CSV 文件在 Python 中将 CSV 文件拆分为多个文件根据行拆分 CSV 文件根据列拆分 CSV 文件 总结 在本文中,我们将学习如何在 Python 中将一个 CSV 文件拆分为多个文件。 我们将使用 Pandas 创建一个 CSV 文件并将其拆分为多个…...
2023/6/7 0:25:54 - 设计模式十 适配器模式
适配器模式 适配器模式是一种结构型设计模式。作用:当接口无法和类匹配到一起工作时,通过适配器将接口变换成可以和类匹配到一起的接口。(注:适配器模式主要解决接口兼容性问题) 适配器的优点与缺点: 优…...
2023/6/7 0:25:24 - 二十一、C++11(中)
文章目录 一、左值&右值(一)基本概念1.左值是什么2.右值是什么 (二)左值引用和右值引用1.左值引用2.右值引用 二、右值引用使用场景和意义(一)引入(二)左值引用的使用场景&#…...
2023/6/7 0:25:08 - 【CVPR2023】TPS详解:联合令牌剪枝与压缩以实现视觉变形器更积极的压缩
【CVPR2023】TPS详解:联合令牌剪枝与压缩以实现视觉变形器更积极的压缩 0. 引言1. 为什么要使用TPS?2. TPS介绍3. TPS 详解3.1 重要性计算3.2 令牌压缩3.2.1 匹配3.2.2 融合 4. 简化版理解5. 总结 0. 引言 虽然 Vision Transformers (ViTs&a…...
2023/6/7 0:24:52 - unity 3d实现下雨、雾气、萤火虫和火花四溅的粒子效果
文章目录 先看最终效果1. 下雨效果2. 雾气效果3. 萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合 先看最终效果 1. 下雨效果 2. 雾气效果 3. 萤火虫和火花四溅的效果 3d下雨粒子效…...
2023/6/7 0:24:17 - 【学习日记2023.6.6】之 Linux环境下部署Java项目
文章目录 5. 项目部署5.1 手动部署项目5.2 基于Shell脚本自动部署5.2.1 介绍5.2.2 推送代码到远程5.2.3 Git操作5.2.4 Maven安装5.2.5 Shell脚本准备5.2.6 Linux权限5.2.7 授权并执行脚本5.2.8 设置静态IP 5. 项目部署 开发的项目绝大部分情况下都需要部署在Linux系统中。下面通…...
2023/6/7 0:24:06 - 我们投出去的简历为什么已读不回?来看面试官如何筛选简历、挑选求职者?
目录 前言: 应届生 1、看学历 2、看实习经历 3、看专业 职场人士 面试官喜欢问什么问题 总结 前言: 金三银四,是求职者蠢蠢欲动的季节,亦是企业摩拳擦掌的季节。 因为作为企业的一名金牌面试官,我收到的内推…...
2023/6/7 0:23:50 - 《大脑规则》随记
大脑规则( brinrules ) 1.运动促进大脑发展。在运动时大脑会产生一种脑源性神经营养因子的微量蛋白,他们可以促进大脑发育。 2.生存。协商,合作,并建立联盟,我们与人的沟通能力决定,大脑是人类赖以生存最重要的工具。 …...
2023/6/7 0:23:41 - Vue Router入门:轻松构建单页应用程序
Vue.js是一种流行的前端JavaScript框架,可以让开发人员轻松构建动态用户界面。Vue.js的一个关键特性是其路由系统,它使得开发人员可以轻松创建具有多个视图和页面的单页应用程序(SPA)。在本文中,我们将探讨如何使用Vue Router在Vue.js中构建SPA。我们将介绍如何安装和配置…...
2023/6/7 0:23:30 - 注意!ChatGPT的Plus账号也会被封禁
文 / 高扬(微信公众号:量子论) 最近经常看到有人丢个截图,然后悲伤地说,ChatGPT账号被封了。 这不是账号被封,而是所用的代理节点被OpenAI封了,换个节点即可。 这个截图才是账号真正被封的提示&…...
2023/6/6 23:39:44 - 一键部署个人ChatGPT Web网站
一键部署个人ChatGPT Web网站 githubVercel使用自己的域名 本文将向大家介绍如何通过Github和Vercel这两个具,轻松搭建自己的ChatGPT Web网站,并且我们还可以添加密码保护以防止恶意滥用。 github 首先,我们需要拥有一个Github账号和Vercel账࿰…...
2023/6/6 22:47:18 - 【ChatGPT】基于tensorflow2实现transformer(GPT-4)
请记住,您是一位NLP领域的专家和优秀的算法工程师。使用带有 tensorflow2.0 subclass api 的 python 从头开始实现 transformer 模型。 全部内容如下: 构建transformer模型架构和依赖层;生成并预处理一些假样本数据,用于训练上面…...
2023/6/6 22:44:33 - ChatGPT的20种用法,挺不错建议收藏
一、闲聊机器人 用途:这个不多说了,用来闲聊体验感真的很不错。 二、关键字提取 用途:NLP任务的重要作用,关键字提取! 三、将产品描述转变为广告 用途: 这个功能对于商家来说太棒了。 四、情感分析 用途…...
2023/6/6 22:40:57 - Openai+Coursera: ChatGPT Prompt Engineering(一)
想和大家分享一下最近学习的Coursera和openai联合打造ChatGPT Prompt Engineering在线课程,下面是通过API来访问ChatGPT的主要代码: import openaiopenai.api_key XXXXXXXXXdef get_completion(prompt, model"gpt-3.5-turbo"):messages [{&…...
2023/6/6 22:28:45 - 本地化部署AI语言模型RWKV指南,ChatGPT顿时感觉不香了。
之前由于ChatGpt处处受限,又没法注册的同学们有福了,我们可以在自己电脑上本地化部署一套AI语言模型,且对于电脑配置要求也不是非常高,对它就是RWKV。 关于RWKV RWKV是一个开源且允许商用的大语言模型,灵活性很高且极…...
2023/6/6 21:04:59 - 基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发
目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Pycharm 环境ChatterBot 环境 模块实现1. 模型构建2. 服务器端3. 客户端4. 语音录入5. 接口调用6.模型训练及保存 系统测试1. 模型效果2. 模型应用 源代码下载地址其它资料下载 前言 本项目基于机器学习和语义识…...
2023/6/6 16:54:09 - 创造之境:Stable Diffusion + chatGPT下的自动绘图探索
什么是Stable Diffusion Stable Diffusion 是在2022年发布的深度学习文本到图像生成模型。它主要用于根据文字的描述生成详细图像,尽管它也可以应用于其他任务,如内插绘制、外插绘制,以及在提示词(英语)指导下生成图生…...
2023/6/6 16:12:03 - 4个ChatGPT拓展出来的工具
现在ChatGPT 相关 的方向非常的多,各个大厂一个一个推出了自己的大模型,从国外到国内,ChatGPT 相关 也有几十个,这是大厂的方向。 对于比较小的团队,很多都是在ChatGPT 的基础上进行的开发,下面罗列出4个在…...
2023/6/6 14:10:23 - 了解Chatgpt key token计价或扣费说明
了解Chatgpt key及token计费方式 Token及费用说明 token 与 文字 的换算 OpenAI的定价是基于token的,对于英文文本,1个token大约是4个字符或0.75个单词。通常1000个Token约等于750个英文单词或者400~500个汉字。 花费 1000个token的价格…...
2023/6/6 12:58:22 - 如何用ChatGpt开发小游戏
随着人工智能的快速发展,自然语言处理模型ChatGPT在各种应用中得到了广泛的应用。其中,开发小游戏是一个有趣而具有挑战性的任务。本文将介绍如何使用ChatGPT开发小游戏,并提供一些示例和技巧,帮助读者了解如何利用ChatGPT打造自己…...
2023/6/6 12:20:52 - ChatGPT唤醒AI游戏:AIGC持续走深,游戏或成AI最佳抓手
随着人工智能技术的不断发展,AI在游戏行业的应用日益深入。本文将详细探讨ChatGPT在AI游戏领域的应用,以及游戏如何成为AI技术的最佳抓手。让我们一起探讨这个有趣且充满潜力的领域。 一、引言 人工智能在各行各业都取得了巨大的成功,而游戏…...
2023/6/6 11:31:05 - 【ChatGPT免费使用,无限制的问答和绘图模式】文末还介绍了最强的AI绘图模型演示,提供三重模型免费网站地址,阐述不要过分依赖ChatGPT,使用前也应该多思考观点
分享一个免费且无需登录即可使用,结合问答与绘图模型, 可自由调节模型参数的公益网站: https://shdily.com 绘图一定要多描述特征(推荐英语),才能有更好的效果 注意: 此网站在使用腾讯服务器…...
2023/6/6 10:53:10 - 【原创】免费,不限量,使用OpenAI ChatGPT方法大揭秘
文章目录 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT1、安装最新版的Edge浏览器2、选中浏览器的配置中的扩展3、在启动新页时,就可以看到chatGPT了4、这就可以免费使用chatGPT啦 微软的Edge浏览器集成WeTab插件就可以免费使用ChatGPT 1、安装最新版的Edg…...
2023/6/6 9:46:10 - 如何安装ChatGPT?
ChatGPT是一款流行的在线聊天机器人,可帮助您与朋友、家人或客户进行沟通交流。如果您正在寻找一种快捷便利的工具来提高与他人的沟通能力,那么ChatGPT可能是一个不错的选择。 那么,如何在您自己的设备上安装ChatGPT呢?这里为您提…...
2023/6/6 8:50:34 - 【ChatGPT白嫖大全】什么年代了?还在看传统文章?
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:学习番外篇⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你了解更多热点知识 🔝🔝 白嫖大法 1. 前言🚩2. 需要…...
2023/6/6 7:38:28 - Elasticsearch:如何使用 Elasticsearch 以自然语言提示 ChatGPT
作者:Enrico Zimuel 这些天每个人都在谈论 ChatGPT。 这种大型语言模型 (LLM) 的一项很酷的功能是能够生成代码。 我们用它来生成 Elasticsearch DSL 查询。 目标是在 Elasticsearch 中搜索 “给我股票指数中 2017 年的前 10 个文档(Give me the first 1…...
2023/6/6 2:09:15 - 目前可用的ChatGPT网站(6/5/2023更新)
本文意在整理可用gpt-3.5、gpt-4.0等网站。 本文主要是方便自己翻阅,如对您也有所帮助,不胜荣幸~ 文章目录 GPTTalkChat机器人wuguokai.cnWeBoT(GPT-4)bing.com(GPT-4)HuggingChat总结 GPTTalk 网址:https://gpttalk.live/gpt-3.5 Chat机器…...
2023/6/7 0:10:38 - Chatgpt中文版无需代理,ChatGPT镜像
Chatgpt中文版无需代理 网站ChatGPT中文版 ChatGPT中文版是一个基于人工智能技术的聊天机器人,它可以模拟人类的自然语言交互,回答用户的各种问题和提供各种服务。它的核心技术是GPT(Generative Pre-trained Transformer)模型&am…...
2023/6/6 23:03:34 - ChatGPT中文版Prompt提示工程超详细指南《提示工程简介及示例》Github最新破万星项目Meta AI前工程师解密百万年薪提示工程师GPT-4模型优化利器(一)
提示工程简介及示例 前言Introduction 导言提示工程简介什么是提示工程大语言模型设置基础提示词提示词格式提示词要素设计提示的通用技巧从简单开始指令具体性避免不精确做还是不做? 提示词示例文本概括信息提取问答文本分类对话代码生成推理 说明参考资料其它资料…...
2023/6/6 22:18:14 - AI(二):初体验(Cursor、Copilot、Bito、Notion、ChatExcel、Gamma、Tome、ChatPDF、AI-Video、SD、ChatGPTAPI、Midjourney)
Cursor Cursor官网下载:https://www.cursor.so/ && https://github.com/getcursor/cursor Cursor.so是一款基于GPT的代码生成工具,它可以帮助开发者快速生成代码,提高开发效率。GPT是一种自然语言处理技术,可以根据输入…...
2023/6/5 20:15:16 - Pandas+ChatGPT强强结合诞生PandasAI,数据分析师行业要变天了?
大家好,我是千与千寻,可以叫我千寻,我自己主要的编程语言是Python和Java。 说到Python编程语言,使用Python语言主要使用的是数据科学领域的从业者。 Python编程语言之所以在数据科学领域十分火热,源于Python语言的三大数据科学工作包,NumPy,Pandas,SciPy。 以下是三…...
2023/6/5 20:02:13 - 效率神器!神级ChatGPT浏览器插件分享
大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,欢迎大家交流~,后续我还会分享更多 AI 有趣工具和实用玩法,包括AI相关技术、ChatGPT、AI…...
2023/6/5 19:35:10 - Ex-ChatGPT本地部署+Azure OpenAI接口配置+docker部署服务
Ex-ChatGPT项目分为 Ex-ChatGPT 和 WebChatGPTEnhance 两部分,Ex-ChatGPT启动后是个web服务,通过访问ip端口体验; WebChatGPTEnhance可编译生成一个浏览器插件,Chrome或者Microsoft edge浏览器可以安装该插件,点击该插…...
2023/6/5 18:36:13 - 【AI聊天丨 ChatGPT应用案例一】— 仅用30分钟,ChatGPT帮你完成专利交底书!
Hi,大家好,我是零点壹客,今天主要也是想和大家一起唠唠ChatGPT, 尤其这两个月,ChatGPT出奇的火,想必各位圈友们或多或少的都已经有些了解。 ChatGPT的出现很大程度上已经改变了我们的工作方式,尤…...
2023/6/5 18:10:19 - ChatGPT与网络安全
文章目录 一、“AI用于攻击”二、“AI用于安全(防御)”三、“AI的防御”四、“AI被攻击” ChatGPT作为基于生成式预训练模型(GPT)的聊天机器人,其核心技术是自然语言处理(NLP)。随着NLP技术的不…...
2023/6/6 23:47:34 - 三联周刊和ChatGPT一起专访了《人类简史》作者尤瓦拉·赫拉利
*本文为「三联生活周刊」原创内容 “人类文化基于语言。而因为人工智能已经破解了语言,它现在可以开始创造文化。” 主笔 | 苗千 记者|肖楚舟 张宇琦 编辑|曾焱 尤瓦尔赫拉利(Yuval Noah Harari)以其《人类简史》《未来简史》和《今日简史》等风靡全球的著作,成为当…...
2023/6/5 14:33:50 - ChatGPT让我变成了“超人”-如何提升团队30%效能质量提高100%的阶段性总结报告
创作背景 CHATGPT刚出现时我的内心有一万匹“马”在奔腾,我是排斥的、BS的、甚至关掉屏敝掉相关新闻、连家里电视机的插线都拨掉。因为它的表现真的伤到了我的自尊。 这样的情绪源至我自己的“不自信”,不自信的前提是因为听到的东西太过于有“冲击性”了…...
2023/6/6 14:43:49 - 国内使用chatGPT插件
无需任何繁琐操作,只要你一打开edge浏览器就能使用chatGPT,还要什么自行车! 那么如何使用呢?其实操作是非常简单的! 步骤 第一步:下载edge浏览器 edge浏览器一般Windows10系统都自带了,没有的…...
2023/6/6 13:51:46 - 可以免费使用的ChatGPT保姆级教程 (New Bing)
ChatGPT狂飙160天,世界已经不是之前的样子。https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 最近,ChatGPT已经非常流行,但由于各种原因,国内用户无法直接免费使用ChatGPT的API,各种伟大的神也利用这…...
2023/6/6 13:30:36 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下: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