gpt4 book ai didi

java - 在 Apache Tapestry 页面访问上传的文件

转载 作者:行者123 更新时间:2023-11-30 11:14:13 25 4
gpt4 key购买 nike

我使用的是 Apache Tapestry v5.3.7,我已经在表单中使用了普通的 Tapestry 上传组件。为了更好的用户体验,我现在尝试在没有任何形式的情况下将 Dropzone.js 集成到普通的 Tapestry 页面中。 JavaScript 集成工作正常。上传的文件数据通过 post 请求传输到我的服务器,我可以访问带有所有参数的请求。

我现在的问题是如何访问上传文件的二进制数据(可能是 InputStream)以将它们保存在我的系统中?我已经注入(inject)了 http 请求,但 getInputStream 返回一个空流。

谢谢你的建议

/** Code snippet of page java part */
...

@Inject
protected HttpServletRequest _request;

public void onActivate (String rowId) {
String fileName=_request.getParameter("file");
try {
InputStream is=_request.getInputStream();
// if I do read from is it returns -1
// :-(
doSomeSaveStuff(is); // dummy code
}
catch(Exception e) {
e.printStackTrace();
}
}

...

最佳答案

这是一种方法:

在模板中:

<t:form t:id="testForm" class="dropzone">
</t:form>

在page.java中

  @Inject
MultipartDecoder multipartDecoder;

@Component(id = "testForm")
private Form testForm;

@Inject
RequestGlobals requestGlobals;

void onSubmitFromTestForm() throws ManagerException {
System.out.println("test form invoked");
HttpServletRequest r = requestGlobals.getHTTPServletRequest();
UploadedFile u = multipartDecoder.getFileUpload("file");

上传的文件包含您上传的内容,您可以按照自己的方式使用它。

注:HttpServletRequest::getParameterMap() , 告诉我文件的句柄称为 file这就是我如何知道通过 filegetFileUpload使解码器正确解析 multipart/post

关于java - 在 Apache Tapestry 页面访问上传的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com