ssh框架 使用struts上传图片

使用ssh框架 struts上传图片,使用相对路径 保存到本地服务器文件夹下面,路径保存到mysql数据库中


一,项目文件部署


在webRoot下面创建了upload文件夹 主要是用来存取图片


二,添加图片的页面

  <body>

      <!--  enctype="multipart/form-data"图片上传是以二进制的形式上传 -->

      <s:form action="AddFile" method="post" enctype="multipart/form-data">
            <s:textfield name="detailed" label="图片详细"></s:textfield>
            <s:file name="file" label="图片"></s:file>
            <s:submit label="上传"/>
      </s:form>    
  </body>


三,struts.xml的配置文件

<struts>

     <!-- 上传的全部图片的最大限制-->
     <constant name="struts.multipart.maxSize" value="1024102400"/>


      <package name="default" extends="struts-default" >
      <action name="AddFile" class="addImg">    

          <!-- 重定向,当在添加的action中返回name="scce" 的时候,就重定向带allFile的action,显示全部的图片 -->
           <result name="scce" type="redirectAction">allFile</result>
           <!-- 限制图片的格式和图片的大小 -->
            <interceptor-ref name="fileUpload">
                <param name="allowedTypes">
                    image/bmp,image/png,image/gif,image/jpeg,image/jpg
                </param>
                <param name="maximumSize">102400</param>
            </interceptor-ref>

            
            <!-- 默认的拦截器,必须要写 -->
            <interceptor-ref name="defaultStack" />
       </action>

       <!-- 查询全部的action -->
       <action name="allFile" class="All">
         <result name="all">/scce.jsp</result>
       </action>
      </package>
</struts>


四,添加图片的action类代码如下

@SuppressWarnings("serial")
public class Add_action extends ActionSupport {

    private ImgServlet imgServlet;
    //图片详细
    private String  detailed;
    // 封装上传文件域的属性
    private File file;
    // 封装上传文件类型的属性
    private String fileFileName;
    // 封装上传文件名的属性
    private String fileContentType;

    
    public ImgServlet getImgServlet() {
        return imgServlet;
    }
    public void setImgServlet(ImgServlet imgServlet) {
        this.imgServlet = imgServlet;
    }

    public String getDetailed() {
        return Detailed;
    }
    public void setName(String Detailed) {
        this.name = Detailed;
    }
    public File getFile() {
        return file;
    }
    public void setFile(File file) {
        this.file = file;
    }
    public String getFileFileName() {
        return fileFileName;
    }
    public void setFileFileName(String fileFileName) {
        this.fileFileName = System.currentTimeMillis()+fileFileName;
    }
    public String getFileContentType() {
        return fileContentType;
    }
    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    @SuppressWarnings("unchecked")
    public String execute(){

        File destFile = null;
        //获得图片保存的路径
        String root = ServletActionContext.getServletContext().getRealPath("/upload");
    
        try {

            InputStream is = new FileInputStream(file);
            destFile = new File(root,this.getFileFileName());

            FileUtils.copyFile(file, destFile);  

            //把图片写入到上面设置的路径里
            OutputStream os = new FileOutputStream(destFile);

            byte[] buffer = new byte[400];
            int length  = 0 ;
            while((length = is.read(buffer))>0){
                os.write(buffer, 0, length);
            }    
            FileImg fileImg=new FileImg(name,this.getFileFileName());
            //把图片添加到数据库
            imgServlet.AddImg(fileImg);

            is.close();
            os.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
       return "scce";
    }
    
}


五 查询全部图片的action

public class All_action {

    private ImgServlet imgServlet;
    
    public ImgServlet getImgServlet() {
        return imgServlet;
    }
    public void setImgServlet(ImgServlet imgServlet) {
        this.imgServlet = imgServlet;
    }

    @SuppressWarnings("unchecked")
    public String execute(){
        //获得request对象
        Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");
        //将数据库中的值保存到list集合中
        List<FileImg> fileImgslist=imgServlet.All();
        //把list集合保存到request中
        request.put("fileImgslist", fileImgslist);
        return "all";
        
  }
}


六,显示图片的jsp页面

  <body>
   <c:forEach items="${fileImgslist}" var="aa">
     <img alt="" src="upload/${aa.url}">
   </c:forEach>

 </body>





  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值