【问题标题】:Read uploaded file in struts2在struts2中读取上传的文件
【发布时间】:2014-01-19 08:14:43
【问题描述】:

struts2如何读取上传的文件?

我正在开发一个网络应用程序,当我上传文件时遇到一些问题:我可以上传我需要的文件类型 喜欢:我可以上传和阅读图片,但我上传他时无法阅读其他文件

这是我的 jsp 文件:

<s:form action="fileUpload" method="post" enctype="multipart/form-data">
    <s:file name="toBeUploaded" label="Choose file to upload" />
    <s:submit value="upload" align="center"/>
</s:form>

动作类:

public class FileUploadAction extends ActionSupport implements ServletRequestAware {

    public File toBeUploaded;
    public String toBeUploadedFileName;
    public String toBeUploadedContentType;
    private HttpServletRequest servletRequest;

    public String execute() {

         String filePath =             servletRequest.getSession().getServletContext().getRealPath("/");
         System.out.println("Server path:" + filePath);
         File fileToCreate = new File(filePath, this.toBeUploadedFileName);

         try {
            FileUtils.copyFile(this.toBeUploaded, fileToCreate);
            FileUtils.copyFile(toBeUploaded, fileToCreate);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            addActionError(e.getMessage());
        }
        return SUCCESS;
    } + getters/setters




<action name="fileUpload" class="com.ged.control.FileUploadAction">
<interceptor-ref name="basicStack"/>
 <interceptor-ref name="fileUpload">
<param name="maximumSize">9999999999</param>
<param name="allowedTypes">image/gif,image/jpeg,image/png,application/msword,
 application/mspowerpoint,text/doc,text/plain,application/pdf,application/ms-excel,application/xml,application/powerpoint,audio/mpeg3,audio/x-mpeg-3,video/mpeg,video/x-mpeg,audio/wav,application/x-mspowerpoint,application/vnd.ms-excel,video/avi</param>
            </interceptor-ref>

            <interceptor-ref name="validation"/>
            <interceptor-ref name="workflow"/>
            <interceptor-ref name="defaultStack"></interceptor-ref>

            <result name="success">/uploadSucceed.jsp</result>
            <result name="input">/fileUpload.jsp</result>
        </action>

结果页面:

<article class="module width_full">
                <header><h3>Post New section</h3></header>
                File Name : <s:property value="toBeUploadedFileName"></s:property>
                    <br/>
                Content type: <s:property value="toBeUploadedContentType" ></s:property>
                    <br/>
                User file :<s:property value="toBeUploaded"></s:property>
                    <br/>
                Uploaded file: 
                    <br/>
                    <img src="<s:property value="toBeUploadedFileName"/>" ></img>

        </article>

【问题讨论】:

  • 你不能那样做(使用 s:property)。使用 iframe:stackoverflow.com/a/12974270/1654265 或类似的东西
  • 我有新方法如何使用这个属性 public File toBeUploaded 插入上传到数据库中的文件并使用休眠模式;公共字符串 toBeUploadedFileName;公共字符串 toBeUploadedContentType;并更改此路径 servletRequest.getSession().getServletContext().getRealPath("/");通过我自己的路径,如 C:\fileuploaded
  • 这对我来说似乎是一个新问题...顺便说一句,我建议您使用 JPA2,并使用休眠作为 JPA 实现,而不是原始休眠...
  • 是的,我正在使用 Hibernate 和 JPA,但现在我不知道如何实现:D

标签: java jakarta-ee file-upload struts2


【解决方案1】:
<?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>
    <package name="default" extends="struts-default" namespace="/">
        <action name="fileUpload" class="com.pkg.FileUploadAction">
            <interceptor-ref name="fileUpload">
                <param name="maximumSize">1048576</param>
                <param name="allowedTypes">
<!--  it will allow to upload any file  image/png,image/gif,image/jpeg,image/`enter code here`jpeg -->
                 </param>
            </interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
            <result name="success">uploadSucceed.jsp</result>
            <result name="input">fileUpload.jsp</result>
        </action>
    </package>
</struts>

【讨论】:

    猜你喜欢
    • 2012-10-16
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多