欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SSH框架實(shí)現(xiàn)表單上傳圖片實(shí)例代碼

 更新時(shí)間:2017年09月08日 10:29:10   作者:暖心先森  
本篇文章主要介紹了SSH框架實(shí)現(xiàn)表單上傳圖片實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

SSH框架的一個(gè)上傳到服務(wù)器然后顯示在頁(yè)面上的小實(shí)例,用的是簡(jiǎn)單的form表單形式,數(shù)據(jù)包括圖片的url地址保存在數(shù)據(jù)庫(kù)中,圖片上傳到tomcat服務(wù)器下的項(xiàng)目文件夾里,然后頁(yè)面展示圖片, 算是好好把上傳功能給過(guò)了一遍了,當(dāng)然還有什么H5上傳,分片上傳等等這里就不提了,適用于初學(xué)上傳文件的例子。

使用Bootstrap fileinput.js上傳控件,
GitHub源碼下載:https://github.com/kartik-v/b...

頁(yè)面上需要引入的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>

效果還是不錯(cuò)的

頁(yè)面代碼(參考)

  <form action="uploadAction" method="post" enctype="multipart/form-data"
    id="myform">
    <!-- 圖片標(biāo)題   -->
    <input class="form-control" type="text" name="img_title"
      id="img_title" size="100" value="請(qǐng)輸入圖片名稱" style="color: #999999;"
      onfocus='if(this.value=="請(qǐng)輸入圖片名稱"){this.value="";};'
      onblur='if(this.value==""){this.value="請(qǐng)輸入圖片名稱";};'> <br />
    <!-- 下拉框 -->
    <select name="img_state">
      <option selected="selected">請(qǐng)選擇審核狀態(tài)</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下創(chuàng)建uploadFile文件夾)

這里沒(méi)有用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 {
  /**
   * 這里集合形式輸入到流,防止上傳重復(fù)文件,減少服務(wù)器壓力
   */
  private String img_title;// 圖片標(biāo)題
  private int img_state;// 狀態(tài)
  // 上傳文件存放路徑
  private final static String uploadAddres = "/uploadFile";

  // 上傳文件集合泛型為file對(duì)象
  private List<File> file;
  // 上傳文件名集合
  private List<String> fileFileName;
  // 上傳文件內(nèi)容類型集合
  private List<String> fileContentType;

  cms_images images = new cms_images();
  cms_state state = new cms_state();// 實(shí)例狀態(tài)類
  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++) {
      // 循環(huán)上傳每個(gè)文件
      uploadFile(i);
    }
    /**
     * 這里有bug 想每次添加完后能在查詢一遍下拉框的值
     */
    // cia.execute();
    return "uploadSuccess";
  }

  // 調(diào)用執(zhí)行上傳功能
  @SuppressWarnings("deprecation")
  public void uploadFile(int i) throws FileNotFoundException, IOException {
    try {
      InputStream in = new FileInputStream(file.get(i));
      // ServletActionContext對(duì)象響應(yīng)獲取實(shí)際文件地址,getRealPath已經(jīng)廢棄不推薦用了
      String dir = ServletActionContext.getRequest().getRealPath(
          uploadAddres);
      System.out.println("服務(wù)器路徑:" + dir);
      // 獲取文件名稱
      String fileName = this.getFileFileName().get(i);
      // 路徑和文件名丟進(jìn)file對(duì)象里
      File uploadFile = new File(dir, fileName);
      // 輸出流
      OutputStream out = new FileOutputStream(uploadFile);
      // 設(shè)置文件大小1MB
      byte[] buffer = new byte[1024 * 1024];
      int length;
      // 用循環(huán)從流中讀取文件的大小
      while ((length = in.read(buffer)) > 0) {
        out.write(buffer, 0, length);
      }

      // 設(shè)置圖片標(biāo)題和全路徑
      images.setImg_title(img_title);
      String imgURL = dir + "/" + fileName;
      // 將全路徑截取為相對(duì)路徑
      String strURL = imgURL.substring(32);
      images.setImg_url(strURL);

      // 設(shè)置狀態(tài)的id,并將id對(duì)象傳入
      state.setS_id(img_state);
      images.setImg_state(state);
      // 添加圖片的信息
      int num = isi.addIMG(images);
      System.out.println("是否上傳了信息:" + num);
      // 關(guān)閉輸入流輸出流,釋放內(nèi)存
      in.close();
      out.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

演示效果圖

圖片上傳到了tomcat下的項(xiàng)目指定的文件夾里了

頁(yè)面展示(這個(gè)部分就各有各有寫(xiě)法了)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(19)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(19)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你
    2021-07-07
  • 永久解決 Intellij idea 報(bào)錯(cuò):Error :java 不支持發(fā)行版本5的問(wèn)題

    永久解決 Intellij idea 報(bào)錯(cuò):Error :java 不支持發(fā)行版本5的問(wèn)題

    這篇文章主要介紹了永久解決 Intellij idea 報(bào)錯(cuò):Error :java 不支持發(fā)行版本5的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • IDEA maven上傳速度很慢的解決辦法

    IDEA maven上傳速度很慢的解決辦法

    maven上傳的速度很慢,排除網(wǎng)絡(luò)原因,需要檢查配置,本文主要介紹了IDEA maven上傳速度很慢的解決辦法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • Java數(shù)據(jù)溢出代碼詳解

    Java數(shù)據(jù)溢出代碼詳解

    這篇文章主要介紹了Java數(shù)據(jù)溢出的相關(guān)內(nèi)容,包括具體代碼示例,分析比較詳細(xì),希望對(duì)大家有所幫助,感興趣的朋友可以參考下。
    2017-09-09
  • springmvc攔截器登錄驗(yàn)證示例

    springmvc攔截器登錄驗(yàn)證示例

    本篇文章主要介紹了springmvc攔截器登錄驗(yàn)證示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Java集合框架之Collection接口詳解

    Java集合框架之Collection接口詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合框架之Collection接口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 基于Springboot實(shí)現(xiàn)送水公司信息管理系統(tǒng)

    基于Springboot實(shí)現(xiàn)送水公司信息管理系統(tǒng)

    這篇文章主要介紹了基于Springboot實(shí)現(xiàn)送水公司信息管理,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • java教程之java程序編譯運(yùn)行圖解(java程序運(yùn)行)

    java教程之java程序編譯運(yùn)行圖解(java程序運(yùn)行)

    最近重新復(fù)習(xí)了一下java基礎(chǔ),在使用javap的過(guò)程中遇到了一些問(wèn)題,這里便講講對(duì)于一個(gè)類文件如何編譯、運(yùn)行、反編譯的。也讓自己加深一下印象
    2014-03-03
  • Intellij IDEA導(dǎo)入JAVA項(xiàng)目并啟動(dòng)(圖文教程)

    Intellij IDEA導(dǎo)入JAVA項(xiàng)目并啟動(dòng)(圖文教程)

    這篇文章主要介紹了Intellij IDEA導(dǎo)入JAVA項(xiàng)目并啟動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java中有界隊(duì)列的飽和策略(reject policy)原理解析

    Java中有界隊(duì)列的飽和策略(reject policy)原理解析

    這篇文章主要介紹了Java中有界隊(duì)列的飽和策略(reject policy)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論