【问题标题】:sending file from jsp to action从jsp发送文件到action
【发布时间】:2015-08-18 08:12:13
【问题描述】:

我必须将一个文件从我的 jsp 传递到我的 portlet 操作类 (java)。 我在我的 jsp 中创建了这一行。

<input type="file" name="file"/>

但是当我需要将它传递到我的 portlet 时,我不知道如何处理它。我应该使用 ParamUtil.getXXX() 方法来处理它,但我看不到任何保存文件数据的东西类型..它应该看起来像这样

String tin = ParamUtil.getString(actionRequest, "tin");
String surName = ParamUtil.getString(actionRequest, "surName");
String middleName = ParamUtil.getString(actionRequest, "middleName");
String givenName = ParamUtil.getString(actionRequest, "givenName");
String nameExt = ParamUtil.getString(actionRequest, "nameExt");
File file = ParamUtil. **<----- this is where I'm stuck :(**
Date birthDate = ParamUtil.getDate(actionRequest, "birthdate", DateFormat.getInstance());
String birthPlace = ParamUtil.getString(actionRequest, "birthplace");
String citizenship = ParamUtil.getString(actionRequest, "citizenship");
String civilStatus = ParamUtil.getString(actionRequest, "civilstatus");
String fatherFName = ParamUtil.getString(actionRequest, "fgivenName");
String fatherMName = ParamUtil.getString(actionRequest, "fmiddleName");
String fatherLName = ParamUtil.getString(actionRequest, "fsurName");
String motherFName = ParamUtil.getString(actionRequest, "mgivenName");
String motherMName = ParamUtil.getString(actionRequest, "mmiddleName");
String motherLName = ParamUtil.getString(actionRequest, "msurName");
String spouseFName = ParamUtil.getString(actionRequest, "sgivenName");
String spouseMName = ParamUtil.getString(actionRequest, "smiddleName");
String spouseLName = ParamUtil.getString(actionRequest, "ssurName");
String children[] = ParamUtil.getParameterValues(actionRequest, "children[]");


long pi_id = CounterLocalServiceUtil.increment();
personal_info pi = null;
pi = new personal_infoImpl();
pi = personal_infoLocalServiceUtil.createpersonal_info((int) pi_id);
pi.setTin(tin);
pi.setLname(surName);
pi.setFname(givenName);
pi.setMname(middleName);
pi.setName_ext(nameExt);
pi.setBirthDate(birthDate);
pi.setBirthplace(birthPlace);
pi.setPhoto(file); <------------ it's supposed to be saved in here.. but I'm stuck...

因此,我什至没有测试代码块..

【问题讨论】:

  • 使用 UploadPortletRequest 获取文件

标签: java jsp model-view-controller liferay portlet


【解决方案1】:

您应该使用 UploadPortletRequest 来获取文件。

这就是我们对文件列表所做的事情。

JSP 页面:

<form id="fileupload" method="POST" enctype="multipart/form-data" class="uploader-files pull-left">
    <input type="file" name="fileUpload" multiple id="ofxUploadFile" class="file-uploader" />
....
....
</form>

控制器方法:

UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
File[] uploadedFileWithExtension = uploadRequest.getFiles("fileUpload");
        InputStream[] inputStream = uploadRequest.getFilesAsStream("fileUpload");
File[] inputStreamUploadedFile = new File[inputStream.length];
        int i = 0;
        for (InputStream fileObj : inputStream) {
            if (Validator.isNull(fileObj)) {
                inputStreamUploadedFile[i] = FileUtil.createTempFile();
            } else {
                inputStreamUploadedFile[i] = FileUtil.createTempFile(fileObj);
            }
            i++;

        }
    }

【讨论】:

  • 嘿,谢谢,所以我不应该使用与文件相同的方法吗?那么我将如何将文件插入到我的表中?是这样吗,,,,,, pi.setPhoto(inputStreamUploadedFile);
  • 是的,你不能使用 paramUtil。这有帮助吗?如果是,则接受/赞成答案。
  • 从文件中获取数据后,操作内容,然后创建DAO并插入到表中。你应该在操作部分做更多的工作。
  • 是的,谢谢......当然它很有用..我敢打赌它会对其他人有所帮助......至于我,当我成功运行代码时我会支持它...... . 我也会在稍后解决它时发布我最新的工作代码....先生还有什么建议吗?
  • 好的,太好了!!如果您遇到任何问题,请在此处发布。
猜你喜欢
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 2018-03-01
  • 1970-01-01
  • 2013-11-30
  • 2014-10-30
  • 2013-04-28
相关资源
最近更新 更多