SSH框架实现表单上传图片实例代码

发布时间 - 2026-01-11 03:09:52    点击率:

SSH框架的一个上传到服务器然后显示在页面上的小实例,用的是简单的form表单形式,数据包括图片的url地址保存在数据库中,图片上传到tomcat服务器下的项目文件夹里,然后页面展示图片, 算是好好把上传功能给过了一遍了,当然还有什么H5上传,分片上传等等这里就不提了,适用于初学上传文件的例子。

使用Bootstrap fileinput.js上传控件,
GitHub源码下载:https://github.com/kartik-v/b...

页面上需要引入的CSS和JS

<link rel="stylesheet" type="text/css" href="css/fileinput.min.css" rel="external nofollow" >
<script type="text/javascript" src="js/fileinput.min.js"></script>

效果还是不错的

页面代码(参考)

  <form action="uploadAction" method="post" enctype="multipart/form-data"
    id="myform">
    <!-- 图片标题   -->
    <input class="form-control" type="text" name="img_title"
      id="img_title" size="100" value="请输入图片名称" style="color: #999999;"
      onfocus='if(this.value=="请输入图片名称"){this.value="";};'
      onblur='if(this.value==""){this.value="请输入图片名称";};'> <br />
    <!-- 下拉框 -->
    <select name="img_state">
      <option selected="selected">请选择审核状态</option>
      <c:forEach items="${stateList }" var="sl">
        <option value="${sl.s_id }">${sl.s_statename}</option>
      </c:forEach>
    </select> <br />
    <br />
    <!-- 图片上传控件 -->
    <input type="file" name="file" id="file" class="file" /> <br>
  </form>
  <center>
    <a href="executeimages" rel="external nofollow" class="btn btn-success">返回图集</a>
  </center>

uploadAction(MyEclipse的web-info下创建uploadFile文件夹)

这里没有用smartupload或者是别的上传jar包

package com.Action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import Enity.cms_images;
import Enity.cms_state;
import SQL_Implements.images_sql_Implem;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class uploadAction extends ActionSupport {
  /**
   * 这里集合形式输入到流,防止上传重复文件,减少服务器压力
   */
  private String img_title;// 图片标题
  private int img_state;// 状态
  // 上传文件存放路径
  private final static String uploadAddres = "/uploadFile";

  // 上传文件集合泛型为file对象
  private List<File> file;
  // 上传文件名集合
  private List<String> fileFileName;
  // 上传文件内容类型集合
  private List<String> fileContentType;

  cms_images images = new cms_images();
  cms_state state = new cms_state();// 实例状态类
  private images_sql_Implem isi;
  cms_imagesAction cia;

  public cms_imagesAction getCia() {
    return cia;
  }

  public void setCia(cms_imagesAction cia) {
    this.cia = cia;
  }

  public int getImg_state() {
    return img_state;
  }

  public void setImg_state(int img_state) {
    this.img_state = img_state;
  }

  public cms_state getState() {
    return state;
  }

  public void setState(cms_state state) {
    this.state = state;
  }

  public images_sql_Implem getIsi() {
    return isi;
  }

  public void setIsi(images_sql_Implem isi) {
    this.isi = isi;
  }

  public static String getUploadaddres() {
    return uploadAddres;
  }

  public cms_images getImages() {
    return images;
  }

  public void setImages(cms_images images) {
    this.images = images;
  }

  public String getImg_title() {
    return img_title;
  }

  public void setImg_title(String img_title) {
    this.img_title = img_title;
  }

  public List<File> getFile() {
    return file;
  }

  public void setFile(List<File> file) {
    this.file = file;
  }

  public List<String> getFileFileName() {
    return fileFileName;
  }

  public void setFileFileName(List<String> fileFileName) {
    this.fileFileName = fileFileName;
  }

  public List<String> getFileContentType() {
    return fileContentType;
  }

  public void setFileContentType(List<String> fileContentType) {
    this.fileContentType = fileContentType;
  }

  // 上传方法
  public String execute() throws Exception {
    // 打印文件名称
    System.out.println("文件名称:" + this.getFileFileName());
    for (int i = 0; i < file.size(); i++) {
      // 循环上传每个文件
      uploadFile(i);
    }
    /**
     * 这里有bug 想每次添加完后能在查询一遍下拉框的值
     */
    // cia.execute();
    return "uploadSuccess";
  }

  // 调用执行上传功能
  @SuppressWarnings("deprecation")
  public void uploadFile(int i) throws FileNotFoundException, IOException {
    try {
      InputStream in = new FileInputStream(file.get(i));
      // ServletActionContext对象响应获取实际文件地址,getRealPath已经废弃不推荐用了
      String dir = ServletActionContext.getRequest().getRealPath(
          uploadAddres);
      System.out.println("服务器路径:" + dir);
      // 获取文件名称
      String fileName = this.getFileFileName().get(i);
      // 路径和文件名丢进file对象里
      File uploadFile = new File(dir, fileName);
      // 输出流
      OutputStream out = new FileOutputStream(uploadFile);
      // 设置文件大小1MB
      byte[] buffer = new byte[1024 * 1024];
      int length;
      // 用循环从流中读取文件的大小
      while ((length = in.read(buffer)) > 0) {
        out.write(buffer, 0, length);
      }

      // 设置图片标题和全路径
      images.setImg_title(img_title);
      String imgURL = dir + "/" + fileName;
      // 将全路径截取为相对路径
      String strURL = imgURL.substring(32);
      images.setImg_url(strURL);

      // 设置状态的id,并将id对象传入
      state.setS_id(img_state);
      images.setImg_state(state);
      // 添加图片的信息
      int num = isi.addIMG(images);
      System.out.println("是否上传了信息:" + num);
      // 关闭输入流输出流,释放内存
      in.close();
      out.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

演示效果图

图片上传到了tomcat下的项目指定的文件夹里了

页面展示(这个部分就各有各有写法了)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# SSH表单上传图片  # SSH框架  # 表单上传  # SSH框架实现上传图片  # SSH 框架简介  # ssh框架实现文件上传下载实例代码  # 浅谈SSH框架中spring的原理  # 详解ssh框架原理及流程  # 上传  # 请输入  # 上传文件  # 图片上传  # 各有  # 的是  # 下拉框  # 过了  # 就不  # 适用于  # 一遍  # 能在  # 用了  # 并将  # 或者是  # 请选择  # 表单  # 图集  # 数据库中  # 完后 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  详解jQuery中基本的动画方法  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Laravel如何实现用户密码重置功能?(完整流程代码)  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  如何在Windows环境下新建FTP站点并设置权限?  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  UC浏览器如何设置启动页 UC浏览器启动页设置方法  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  如何快速搭建高效WAP手机网站?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  C#如何调用原生C++ COM对象详解  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  零服务器AI建站解决方案:快速部署与云端平台低成本实践  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  JavaScript模板引擎Template.js使用详解  Laravel如何实现用户注册和登录?(Auth脚手架指南)  PythonWeb开发入门教程_Flask快速构建Web应用  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  如何确保西部建站助手FTP传输的安全性?  大同网页,大同瑞慈医院官网?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何在阿里云ECS服务器部署织梦CMS网站?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  lovemo网页版地址 lovemo官网手机登录  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Python高阶函数应用_函数作为参数说明【指导】  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  南京网站制作费用,南京远驱官方网站?  Python面向对象测试方法_mock解析【教程】  Laravel如何记录自定义日志?(Log频道配置)