javaweb上传图片地址到数据库并从数据库中得到地址进行显示
时间: 2024-02-26 16:58:54 浏览: 38
要实现将图片地址上传到数据库并从数据库中获取地址进行显示,你可以按照以下步骤进行操作:
1. 创建数据库表,用于存储图片信息,表结构可以包含图片ID,图片名称,图片路径等字段。
2. 在前端页面中,使用表单上传图片,然后将图片保存到服务器指定目录中,并获取到图片路径。
3. 在后端代码中,将图片路径保存到数据库中,可以使用JDBC或者ORM框架进行数据库操作。
4. 在前端页面中,通过后端接口从数据库获取图片路径,然后将图片显示在页面上。
以下是一个基于Spring MVC和MyBatis框架的示例代码,用于上传图片并将图片路径保存到数据库中:
前端页面:
```
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="Upload" />
</form>
```
后端Controller:
```
@Controller
public class UploadController {
@Autowired
private ImageService imageService;
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
try {
// 保存图片到服务器指定目录
String path = "D:/uploads/" + file.getOriginalFilename();
file.transferTo(new File(path));
// 将图片路径保存到数据库
Image image = new Image();
image.setName(file.getOriginalFilename());
image.setPath(path);
imageService.saveImage(image);
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:/";
}
}
```
Service:
```
@Service
public class ImageService {
@Autowired
private ImageMapper imageMapper;
public void saveImage(Image image) {
imageMapper.insert(image);
}
public Image getImageById(Long id) {
return imageMapper.selectById(id);
}
}
```
Mapper:
```
@Mapper
public interface ImageMapper {
@Insert("insert into image (name, path) values (#{name}, #{path})")
void insert(Image image);
@Select("select * from image where id = #{id}")
Image selectById(Long id);
}
```
最后,在前端页面中,通过后端接口获取图片路径,并将图片显示在页面上:
```
<img src="/image?id=1" />
```
Controller:
```
@Controller
public class ImageController {
@Autowired
private ImageService imageService;
@GetMapping("/image")
public void getImage(@RequestParam("id") Long id, HttpServletResponse response) {
Image image = imageService.getImageById(id);
try {
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(new File(image.getPath()));
byte[] buffer = new byte[1024];
int len = 0;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这样就可以实现将图片地址上传到数据库并从数据库中获取地址进行显示了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)