Heim  >  Artikel  >  Web-Frontend  >  Beispielfreigabe für den asynchronen Upload von Struts1- und JQuery-Formulardateien

Beispielfreigabe für den asynchronen Upload von Struts1- und JQuery-Formulardateien

小云云
小云云Original
2018-01-10 13:38:161453Durchsuche

Dieser Artikel enthält hauptsächlich eine kurze Diskussion zum asynchronen Hochladen von Struts1- und JQuery-Formulardateien. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

1. Übersicht

Verwenden Sie immer noch Struts1? Ja, an ungeschriebenen Orten auf der Erde laufen immer noch Rückwärtsproduktionsmethoden (alte Projekte).

Geerbt von org.apache.struts.action.Action, geerbt von org.apache.struts.action.ActionForm Let's Erste Schritte

2. Code

2.1 HTML-Seite

<html>
<head>
<title>网页上传</title>
</head>
<body>
  <center>
    <h1>本地文件网页上传</h1>
    <hr>

  </center>

  <h1>文件信息列表</h1>
  <hr>
  <form id="myform" method="post" enctype="multipart/form-data">
    <table width="0" border="0" cellspacing="10" cellpadding="0">
    
      <tr>
        <td>选择文件:</td>
        <td><input type="file" name="uploadFile" /></td>
      </tr>
      <tr>
        <td>标题:</td>
        <td><input type="text" name="filetitle" /></td>
      </tr>

      <tr>
        <td colspan="2">
          <input type="button" id="mysubmit" value="确认上传"/>
        </td>
      </tr>

    </table>
  </form>
  <script src="script/jquery.js"></script>
  <script src="script/jquery.form.js"></script>
  <script src="script/_fileUpload.js"></script>
</body>
</html>

2.2 _fileUpload.js

/**
 *_fileUpload.js 
 *
 * 
 */
window.onload = function() {
  
  
  $("#mysubmit").bind("click", function(){
    $("#myform").ajaxSubmit({
      url: "myUpload.do",
      type: "post",
      success: function(data){
        console.log(11111111);
        console.log(data);
      },
      error: function(responseError){
        console.log(22222222222);
        console.log(responseError);
      }
      
    });
  });
}

2.3 MyUploadAction.java (geerbt von Action )

package com.rocky.console.action;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.rocky.console.form.MyUploadForm;
import com.rocky.console.service.ResponseUtil;


public class MyUploadAction extends Action {

  
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception{
    
    MyUploadForm myUploadForm = (MyUploadForm) form;
    FormFile uploadFile = myUploadForm.getUploadFile();
    String filetitle = myUploadForm.getFiletitle();
    System.out.println("111111"+filetitle);
    
    int fileSize = uploadFile.getFileSize();
    InputStream inputStream = uploadFile.getInputStream();
    System.out.println("fileSize::::::::"+fileSize);
    String path = "x:";
    String filename = path + File.separator + uploadFile.getFileName();
    FileOutputStream fos = new FileOutputStream(filename);
    byte[] b = new byte[1024];
    int len = -1;
    while((len = inputStream.read(b))!=-1){
      fos.write(b, 0, len);
    }
    fos.close();
    String result = "success";
    ResponseUtil.write(response, result, null);
    return null;
    
  }
}

2.4 MyUploadForm.java(Geerbt von ActionForm)

package com.rocky.console.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

public class MyUploadForm extends ActionForm {

  /**
   * 
   */
  private static final long serialVersionUID = 6650496540449458586L;
  
  private FormFile uploadFile = null;
  
  private String filetitle;
  
  public String getFiletitle() {
    return filetitle;
  }

  public void setFiletitle(String filetitle) {
    this.filetitle = filetitle;
  }

  public ActionErrors validate(ActionMapping mapping,
      HttpServletRequest request) {
    return null;
  }
  
  public void reset(ActionMapping mapping, HttpServletRequest request) {
  }

  public FormFile getUploadFile() {
    return uploadFile;
  }

  public void setUploadFile(FormFile uploadFile) {
    this.uploadFile = uploadFile;
  }

}

2.5 struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans>
    <form-bean name="myUploadForm" type="com.rocky.console.form.MyUploadForm" />
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings>
    <!-- rocky myupload -->
    <action path="/myUpload" attribute="myUploadForm" name="myUploadForm" type="com.rocky.console.action.MyUploadAction" />
  </action-mappings>
  <message-resources parameter="ApplicationResources" />
</struts-config>

2.6 Beschreibung

2.6.1 jquery.form.js kann online heruntergeladen werden

Verwenden Sie var formData = new FormData(), dann formData.append("myfile", document.getElementById("myfile" ) .files[0]);form.append...

Wenn es viele Formularfelder gibt, ist es mühsam, viele Anhänge zu schreiben. Offensichtlich ist ajaxSubmit viel bequemer

2.6.2 Die Daten vom Front-End durchlaufen ActionForm. Kapseln Sie sie direkt in ihr Unterklassenobjekt (MyActionForm), verwenden Sie FormFile zum Empfangen von Dateidateien und String zum Empfangen anderer Datentypen

Natürlich werden sie entsprechend injiziert Eins-zu-eins-Entsprechung des Namensattributs des HTML-Tags

2.6.3 Wie stimmt ActionForm mit der benutzerdefinierten implementierten Bean (MyUploadForm) überein?

Setzen Sie Ihre eigene Bean in form-bean in struts-config.xml und vervollständigen Sie sie über

Dies Art der Zuordnung

Verwandte Empfehlungen:

Ajax-Beispielcode für den asynchronen Datei-Upload

Javascript-Implementierung der asynchronen Datei-Upload-Funktion Ausführliche Erklärung

Freigabe der Verwendung des Plug-Ins zum asynchronen Hochladen von Dateien mit jQuery

Das obige ist der detaillierte Inhalt vonBeispielfreigabe für den asynchronen Upload von Struts1- und JQuery-Formulardateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn