Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Struts 2中的同一页面上载了文件详细信息_Java_Jsp_File Upload_Struts2 - Fatal编程技术网

Java 在Struts 2中的同一页面上载了文件详细信息

Java 在Struts 2中的同一页面上载了文件详细信息,java,jsp,file-upload,struts2,Java,Jsp,File Upload,Struts2,我可以使用struts2上传文件。 但是我想在struts 2中显示上传文件的详细信息(Filename,filesize,filetype) 我正在尝试使用标记获取详细信息, 但始终显示[Object HTMLDocument] 我的代码如下 uploadfile.jsp: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8

我可以使用struts2上传文件。 但是我想在struts 2中显示上传文件的详细信息(
Filename
filesize
filetype

我正在尝试使用
标记获取详细信息, 但始终显示[Object HTMLDocument]

我的代码如下

uploadfile.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
                pageEncoding="ISO-8859-1"%>
            <%@ taglib prefix="s" uri="/struts-tags"%>
            <!DOCTYPE html>

            <html>
            <head>
                <meta charset="utf-8">

            </head>
            <body>
                <div id="success-image">
                 <s:property value="myFile" />
            <s:head theme="ajax" />
                <s:form id="asset-upload"  name="asset-upload" action="uploadFile.action" method="POST"  theme="ajax" enctype="multipart/form-data">
                <s:file name="myFile" label="Upload Image"/>
       <s:submit targets="success-image" showLoadingText="false" indicator="uploading-image" id="asdf"/>
    </s:form>
        </div>
            </body>
            </html>
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

    <struts>
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="false" />
        <constant name="struts.multipart.maxSize" value="1000000000" />

        <package name="default" extends="struts-default,json-default" namespace="/">
            <action name="uploadFile" class="com.isam.struts.uploadFile">
                <result name="success">
                    <param name="myFile">myFile</param>
                 </result>
                <result name="error">login.jsp</result>
            </action>

            <action name="autoCompleterList" class="com.isam.struts.AutoCompleterList">
                <result type="json" />
            </action>
        </package>
    </struts>
        package com.isam.struts;

        import java.io.File;
        import java.io.IOException;

        import org.apache.commons.io.FileUtils;

        import com.opensymphony.xwork2.ActionSupport;

        public class uploadFile extends ActionSupport {

            private File myFile;
            private String myFileContentType;
            private String myFileFileName;
            private String destPath;


            public String execute() {
                /* Copy file to a safe location */
                destPath = "C:/temp/";

                try {
                    System.out.println("Src File name: " + myFile);
                    System.out.println("Dst File name: " + myFileFileName);

                    File destFile = new File(destPath, myFileFileName);
                    FileUtils.copyFile(myFile, destFile);

                } catch (IOException e) {
                    e.printStackTrace();
                    return ERROR;
                }

                return SUCCESS;
            }

            public File getMyFile() {
                return myFile;
            }

            public void setMyFile(File myFile) {
                this.myFile = myFile;
            }

            public String getMyFileContentType() {
                return myFileContentType;
            }

            public void setMyFileContentType(String myFileContentType) {
                this.myFileContentType = myFileContentType;
            }

            public String getMyFileFileName() {
                return myFileFileName;
            }

            public void setMyFileFileName(String myFileFileName) {
                this.myFileFileName = myFileFileName;
            }

        }
UploadFile.java

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
                pageEncoding="ISO-8859-1"%>
            <%@ taglib prefix="s" uri="/struts-tags"%>
            <!DOCTYPE html>

            <html>
            <head>
                <meta charset="utf-8">

            </head>
            <body>
                <div id="success-image">
                 <s:property value="myFile" />
            <s:head theme="ajax" />
                <s:form id="asset-upload"  name="asset-upload" action="uploadFile.action" method="POST"  theme="ajax" enctype="multipart/form-data">
                <s:file name="myFile" label="Upload Image"/>
       <s:submit targets="success-image" showLoadingText="false" indicator="uploading-image" id="asdf"/>
    </s:form>
        </div>
            </body>
            </html>
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

    <struts>
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="false" />
        <constant name="struts.multipart.maxSize" value="1000000000" />

        <package name="default" extends="struts-default,json-default" namespace="/">
            <action name="uploadFile" class="com.isam.struts.uploadFile">
                <result name="success">
                    <param name="myFile">myFile</param>
                 </result>
                <result name="error">login.jsp</result>
            </action>

            <action name="autoCompleterList" class="com.isam.struts.AutoCompleterList">
                <result type="json" />
            </action>
        </package>
    </struts>
        package com.isam.struts;

        import java.io.File;
        import java.io.IOException;

        import org.apache.commons.io.FileUtils;

        import com.opensymphony.xwork2.ActionSupport;

        public class uploadFile extends ActionSupport {

            private File myFile;
            private String myFileContentType;
            private String myFileFileName;
            private String destPath;


            public String execute() {
                /* Copy file to a safe location */
                destPath = "C:/temp/";

                try {
                    System.out.println("Src File name: " + myFile);
                    System.out.println("Dst File name: " + myFileFileName);

                    File destFile = new File(destPath, myFileFileName);
                    FileUtils.copyFile(myFile, destFile);

                } catch (IOException e) {
                    e.printStackTrace();
                    return ERROR;
                }

                return SUCCESS;
            }

            public File getMyFile() {
                return myFile;
            }

            public void setMyFile(File myFile) {
                this.myFile = myFile;
            }

            public String getMyFileContentType() {
                return myFileContentType;
            }

            public void setMyFileContentType(String myFileContentType) {
                this.myFileContentType = myFileContentType;
            }

            public String getMyFileFileName() {
                return myFileFileName;
            }

            public void setMyFileFileName(String myFileFileName) {
                this.myFileFileName = myFileFileName;
            }

        }
所以我需要在jsp文件中添加什么来显示细节,
我需要在
struts.xml
file

中添加的内容在
uploadFile
操作中,您需要为信息设置setter,并在结果中显示getter

public void setUpload(File myFile) {
  this.myFile= myFile;
}

public void setUploadContentType(String myFileContentType) {
  this.myFileContentType= myFileContentType;
}

public void setUploadFileName(String myFileFileName) {
  this.myFileFileName = myFileFileName;
}


public String getMyFileFileName() {
  return myFileFileName;
}

public String getMyFileSize() {
  return myFile.length();
}

public String getMyFileContentType() {
  return myFileContentType;
}
它以注入值命名,您可以使用这些值进一步显示

<s:property value="myFileName" />

<s:property value="myFileSize" />

<s:property value="myFileContentType" />

如果文件有扩展名,您可以从
myFile
检查它。如果它有图像类型,那么您应该应用编解码器来获取图像类型和尺寸。然而,它不是必需的。获取
buffereImage
后,您可以写入或缩放到任何图像类型或大小


错的是结果“成功”。结果应该是重定向操作的正常URL,带有id image的参数。如果您想将其取回,必须重新加载。

要在上载后在同一页面上显示文件详细信息,请将操作结果更改为:

<action name="uploadFile" class="com.isam.struts.uploadFile">
   <result name="success">uploadfile.jsp</result>
   <result name="error">login.jsp</result>
</action>

uploadfile.jsp
login.jsp
在JSP中,使用
标记显示值:

<s:property value="myFile.length()"/>
<s:property value="myFileContentType"/>
<s:property value="myFileFileName"/>


你不是具体的。上传和上传是不同的流程。什么时候需要显示文件的详细信息?上传文件后,我想显示该文件的详细信息。并希望显示通知,如“您的文件已成功上载”。