上传单张图片代码ssm框架
时间: 2023-06-25 20:05:02 浏览: 96
基于的SSM图片上传实现
首先,需要在前端页面中添加一个上传图片的 input 标签,例如:
```html
<form method="post" enctype="multipart/form-data" action="uploadImage">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
```
其中,`enctype="multipart/form-data"` 表示表单数据以多部分(multipart)形式进行编码,可以上传二进制文件。
接下来,在后端控制器中实现上传图片的方法,例如:
```java
@Controller
public class ImageController {
// 上传图片的路径
private String filePath = "D:/images/";
@RequestMapping(value = "/uploadImage", method = RequestMethod.POST)
public String uploadImage(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 获取上传文件的文件名
String fileName = file.getOriginalFilename();
// 获取上传文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
// 生成一个新的文件名
String newFileName = UUID.randomUUID().toString() + suffixName;
// 创建一个文件对象
File destFile = new File(filePath + newFileName);
// 将上传文件保存到磁盘上
file.transferTo(destFile);
// 返回上传成功的页面
return "success";
} catch (IOException e) {
e.printStackTrace();
}
}
// 返回上传失败的页面
return "error";
}
}
```
其中,`@RequestParam("file") MultipartFile file` 表示从前端页面中获取名为 “file” 的文件数据,并转换为 MultipartFile 类型。
接着,通过 `file.getOriginalFilename()` 获取上传文件的文件名,通过 `fileName.substring(fileName.lastIndexOf("."))` 获取上传文件的后缀名。将文件名和后缀名拼接成新的文件名,防止因为文件名相同导致的覆盖问题。
然后,通过 `File destFile = new File(filePath + newFileName);` 创建一个新的文件对象,将上传的文件保存到磁盘上。
最后,根据上传成功或失败返回相应的页面。
需要注意的是,需要在 Spring 的配置文件中添加上传文件的配置:
```xml
<!-- 配置文件上传的 bean -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"/>
</bean>
```
其中,`maxUploadSize` 属性表示上传文件的最大大小,单位是字节。上面的配置表示上传的文件大小不能超过 10MB。
阅读全文