网站备案的时候可以做网站吗,wordpress小说文章发布插件,门户网站开发介绍,哪些是门户网站1. 文件上传
1.1 前端注意事项 文件上传操作#xff0c;前端的表单项需要如下三项设置#xff1a; #xff08;1#xff09;input标签的type属性应设置为file#xff0c;并且注意不要在input标签中设置value属性#xff0c;因为这可能导致文件上传不成功#xff1b; …1. 文件上传
1.1 前端注意事项 文件上传操作前端的表单项需要如下三项设置 1input标签的type属性应设置为file并且注意不要在input标签中设置value属性因为这可能导致文件上传不成功 2请求方式为 methodpost 3enctypemultipart/form-data。
1.2 后端注意事项 文件上传操作后端需要注意 1可以在项目的配置文件 application.properties或application.yml中设置文件大小限制以避免上传过大的文件导致服务器资源耗尽例如 2后端需要写一个处理上传文件的处理器把接收到的文件保存到服务器指定目录下等其他操作。
1.3 前后端完整示例程序
1.3.1 前端
!DOCTYPE html
html langen xmlnshttp://www.w3.org/1999/html
headmeta charsetUTF-8title文件上传和下载/title
/head
body
form action/file/upload methodpost enctypemultipart/form-data用户名input typetext nameusername/br/头 像 input typefile nameheaderImg /br/生活照input typefile namelifeImages multiple/brinput typesubmit value提交/
/form
/body
/html
1.3.2 后端
package com.shg.springmvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.nio.file.Paths;Controller
public class PageTestController {RequestMapping(value /file/upload, method RequestMethod.POST)ResponseBodypublic String fileUpload(RequestParam(value headerImg) MultipartFile file,RequestParam(value lifeImages) MultipartFile[] lifeImages,RequestParam(value username) String userName) throws IOException {System.out.println(用户名 userName);System.out.println(头像 - 文件名称 file.getOriginalFilename());file.transferTo(Paths.get(D:\\tempPic\\ file.getOriginalFilename()));for (MultipartFile lifeImage : lifeImages) {System.out.println(生活照 - 文件名称 lifeImage.getOriginalFilename());lifeImage.transferTo(Paths.get(D:\\tempPic\\ file.getOriginalFilename()));}return success;}
}
2. 文件下载 文件下载的写法比较固定代码如下
package com.shg.springmvc.controller;import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;RestController
public class ResponseTestController {/*** 问题一如果文件名称中包含中文那么浏览器会乱码* 问题二如果下载的文件比较大会oom(内存溢出)** return* throws IOException*/RequestMapping(value /download, method RequestMethod.GET)public ResponseEntityInputStreamResource response_02() throws IOException {// 获取要下载的文件流String filePath D:\\tempPic\\生活照3.jpg;File file new File(filePath);FileInputStream fileInputStream new FileInputStream(file);// 解决问题一使用URLEncoder.encode()方法对文件名称进行编码String fileName URLEncoder.encode(你好啊.jpg, StandardCharsets.UTF_8);// 解决问题二为了避免一次性读取文件过大导致内存溢出可以使用 InputStreamResource 来读取文件(将文件流包装成Resource对象)InputStreamResource inputStreamResource new InputStreamResource(fileInputStream);return ResponseEntity.ok()// 设置响应头告诉浏览器如何处理.header(HttpHeaders.CONTENT_DISPOSITION, attachment; filename fileName)// 下载文件的大小.contentLength(file.length())// 内容类型:流.contentType(MediaType.APPLICATION_OCTET_STREAM)// 响应体.body(inputStreamResource);}
}