springmvc上传文件和eclipse的简单git操作

Spring MVC 上传文件

  • ssm整合项目的基础上 配置静态文件的访问问题【视图处理器拦截所有的访问的资源只有 jsp 后缀才可以通过】

    springmvc.xml中 视图配置解析器下面加入:<mvc:default-servlet-handler/>,开启静态资源的访问

  • web.xml里面配置的前端控制器 DispatcherServlet里面配置上传文件的临时目录:

    <!-- 配置 DisPatchServlet 分发控制器 拦截请求到这个servlet 里面去做分发 -->
      <servlet>
      	<servlet-name>springMvc</servlet-name>
      	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      	<init-param>
      		<param-name>contextConfigLocation</param-name>
      		<param-value>classpath:springmvc.xml</param-value>
      	</init-param>
      	<!-- 配置文件上传的临时目录和大小控制 -->
      	<multipart-config>
      		<!-- 临时目录不可缺省 -->
      		<location>D:\kaifamiao\upload</location>
      		<max-file-size>2097152</max-file-size>
    		<max-request-size>4194304</max-request-size>
      	</multipart-config>
      </servlet>
      <servlet-mapping>
      	<servlet-name>springMvc</servlet-name>
      	<url-pattern>/</url-pattern>
      </servlet-mapping>
    
  • 创建页面:upfile.jsp

    • 注意提交跳转的控制器
    • 注意:提交方式后面的 enctype 属性 ,传输多媒体文件固定写法
    • 后面的 <img>标签是数据上传成功回显使用
    • 注意:回显路径的写法和动态获取上传文件名的写法 ${upFileName} 和控制器要对应
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="${pageContext.request.contextPath}/goods/upFile" method="post" enctype="multipart/form-data">
    	<input type="file" name="upFile">
    	<input type="submit" value="上传">
    </form>
    <img alt="" src="${pageContext.request.contextPath}/uploads/${upFileName}">
    </body>
    </html>
    
  • 控制器的写法【利用UUID重新给名字并保存】

    • MultipartFile 接口继承了 InputStreamSource 专门用来处理文件上传的

      • getOriginalFilename():取得上传的文件名

      • //getName() 返回参数的名称
            String getName();
        //获取源文件的昵称
            String getOriginalFilename();
        //getContentType() 返回文件的内容类型
            String getContentType();
        //isEmpty() 判断是否为空,或者上传的文件是否有内容
            boolean isEmpty();
        //getSize() 返回文件大小 以字节为单位
            long getSize();
        //getBytes() 将文件内容转化成一个byte[] 返回
            byte[] getBytes() throws IOException;
        //getInputStream() 返回InputStream读取文件的内容
            InputStream getInputStream() throws IOException;
        
            default Resource getResource() {
                return new MultipartFileResource(this);
            }
        //transferTo(File dest) 用来把 MultipartFile 转换换成 File
            void transferTo(File var1) throws IOException, IllegalStateException;
        
            default void transferTo(Path dest) throws IOException, IllegalStateException {
                FileCopyUtils.copy(this.getInputStream(), Files.newOutputStream(dest));
            }
        }
        
    /**
    	 * 上传文件测试
    	 * 1.取得上传文件名 2.修改文件名为uuid随机32位串并不能更改后缀  3.保存到项目发布路径的uploads下面
    	 * 4.判断路径是否存在 不存在创建 5.建立要保存的文件对象 并保存文件 6.转发保存文件到页面显示
    	 * @param upFile
    	 * @return
    	 */
    	@RequestMapping("/upFile")
    	public String upFile(MultipartFile upFile, HttpServletRequest request, Model model) {
    		if (upFile != null) {
    			String fileName = upFile.getOriginalFilename();
    			String newFileName = UUID.randomUUID().toString()+fileName.substring(fileName.lastIndexOf("."));
    			@SuppressWarnings("deprecation")
    			String savePath = request.getRealPath("/")+File.separator+"uploads"+File.separator;
    			File file = new File(savePath);
    			if (!file.exists()) {
    				file.mkdirs();
    			}
    			try {
    				File transferPath = new File(savePath, newFileName);
    				upFile.transferTo(transferPath);
    			} catch (IllegalStateException | IOException e) {
    				e.printStackTrace();
    			}
    			model.addAttribute("upFileName", newFileName);
    		}
    		return "goods/upfile";
    	}
    
  • 多个文件的写法,要么组件名字不一致一个一个自动注入,要么写成一个的,和多选框类似用数组接受循环操作

Eclipse通过 Git 拉取远程项目

  • File —> import

    image-20211202000022645
  • 搜索 git ----> 选择 Projects from Git ----> 下一步【也可以一开始就选只能import 最后一步就不用自己去选导入什么类型的了】

  • image-20211202000148776
  • 选择 Clone URL —> 下一步

    image-20211202000306177
  • 拿到 gitee 上项目所在仓库的 URL

    image-20211202000620978
  • 复制 URL 到 eclipse —> 粘贴URL —>下一步

    image-20211202001144424
  • 下一步

    image-20211202001455476
  • 选择一下本地地址 —> 下一步

    image-20211202001631983
  • 绿条走完 —> 按自己的情况选择 最后完成就好了【刚开始可以选择智能导入的】

    image-20211202001743212

Eclipse对项目 上传和拉取以及分支控制合并等操作

image-20211202001743212

Eclipse对项目 上传和拉取以及分支控制合并等操作

image-20211202005441019
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值