SSM项目中实现图片上传和回显

在ssm项目中实现图片上传并回显
在前端页面通过选择内存中图片,提交后将图片存在对应的路径中,路径存进数据库,查询数据库返回的路径通过在jsp中用img src=“”来展示图片。
实体层:

package com.po;

import org.springframework.web.multipart.MultipartFile;

public class Choice {
    int qid;
    String year;
    String type;
    String topic;
    String image;
    String opt;
    String answer;
    String remark;
    private MultipartFile logoImage;

    public Choice() {
        super();
    }

    public Choice(int qid, String year, String type, String topic, String image, String opt, String answer, String remark, MultipartFile logoImage) {
        this.qid = qid;
        this.year = year;
        this.type = type;
        this.topic = topic;
        this.image = image;
        this.opt = opt;
        this.answer = answer;
        this.remark = remark;
        this.logoImage = logoImage;
    }

    public int getQid() {
        return qid;
    }

    public void setQid(int qid) {
        this.qid = qid;
    }

    public String getYear() {
        return year;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getTopic() {
        return topic;
    }

    public void setTopic(String topic) {
        this.topic = topic;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getOpt() {
        return opt;
    }

    public void setOpt(String opt) {
        this.opt = opt;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public MultipartFile getLogoImage() {
        return logoImage;
    }

    public void setLogoImage(MultipartFile logoImage) {
        this.logoImage = logoImage;
    }

    @Override
    public String toString() {
        return "Choice{" +
                "qid=" + qid +
                ", year='" + year + '\'' +
                ", type='" + type + '\'' +
                ", topic='" + topic + '\'' +
                ", image='" + image + '\'' +
                ", opt='" + opt + '\'' +
                ", answer='" + answer + '\'' +
                ", remark='" + remark + '\'' +
                ", logoImage=" + logoImage +
                '}';
    }
}

Dao层

void insertChoice(Choice choice);


xml

<insert id="insertChoice" parameterType="Choice">
        insert into Choice(year,type,topic,image,opt,answer,remark)
        values(#{year},#{type},#{topic},#{image},#{opt},#{answer},#{remark});
    </insert>

service层接口

public String addChoice(Choice choice,HttpServletRequest request);
@Override
    public String addChoice(Choice choice, HttpServletRequest request) {
        String newFileName = "";
        String fileName = choice.getLogoImage().getOriginalFilename();
        //选择了文件
        if(fileName.length() > 0){
            String realpath = request.getServletContext().getRealPath("/image");
            //实现文件上传
            String fileType = fileName.substring(fileName.lastIndexOf('.'));
            //防止文件名重名
            newFileName = MyUtil.getStringID() + fileType;
            choice.setImage("/image/"+newFileName);
            File targetFile = new File(realpath, newFileName);
            if(!targetFile.exists()){
                targetFile.mkdirs();
            }
            //上传
            try {
                choice.getLogoImage().transferTo(targetFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        //保存到数据库中
        cMapper.insertChoice(choice);
        return "choice/choicelist";

    }

控制层

@RequestMapping("/choicepreinsert")
    public String chiocePreinsert(){
        return "choice/choiceadd";
    }

xuanze
在这里插入图片描述

在实现过程也是出现了不少问题,所以要注意细节

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 SSM 项目实现修改功能通常需要以下步骤: 1. 在前端页面,提供一个表单用于输入需要修改的数据。 2. 在后端控制器,接收前端页面提交的表单数据,并将数据传递给 Service 层。 3. 在 Service 层,调用数据访问层(Dao)的 update 方法,更新数据库的数据。 4. 在数据访问层,编写 update 方法,使用 MyBatis 或者 Hibernate 等框架进行数据更新操作。 下面是一个示例代码,用于在 SSM 项目实现修改功能: 1. 编写前端页面 ```html <form action="/update" method="post"> <input type="hidden" name="id" value="${data.id}" /> <input type="text" name="name" value="${data.name}" /> <input type="text" name="age" value="${data.age}" /> <input type="submit" value="提交" /> </form> ``` 在表单使用隐藏域传递需要修改的数据的 ID。 2. 编写后端控制器 ```java @Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/edit/{id}") public String edit(@PathVariable("id") int id, Model model) { User user = userService.getUserById(id); model.addAttribute("data", user); return "edit"; } @RequestMapping("/update") public String update(User user) { userService.updateUser(user); return "redirect:/list"; } } ``` 3. 编写 Service 层 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public void updateUser(User user) { userDao.updateUser(user); } } ``` 4. 编写数据访问层 ```java @Repository public interface UserDao { void updateUser(User user); } ``` 在 UserDao 编写 update 方法,使用 MyBatis 等框架进行数据更新操作。 以上代码仅供参考,实际的实现方式可能因项目需求和技术栈不同而有所差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值