Grails,从控制器(甚至Servlet)获取InputStream

Grails,从控制器(甚至Servlet)获取InputStream,grails,controller,inputstream,Grails,Controller,Inputstream,我试图从请求中获取inputStream,但它总是空的。有什么想法吗 如何获取它的内容?我正在尝试从中生成DataInputStream。您正在上载多部分请求吗?Grails可能已经将该请求处理为Spring MultipartRequest,在这种情况下,您可以使用getFile()获取上载内容 如果没有,那么request.inputStream应该可以正常工作 干杯 Lee您正在上载多部分请求吗?Grails可能已经将该请求处理为Spring MultipartRequest,在这种情况下

我试图从请求中获取inputStream,但它总是空的。有什么想法吗
如何获取它的内容?我正在尝试从中生成DataInputStream。

您正在上载多部分请求吗?Grails可能已经将该请求处理为Spring MultipartRequest,在这种情况下,您可以使用getFile()获取上载内容

如果没有,那么request.inputStream应该可以正常工作

干杯


Lee

您正在上载多部分请求吗?Grails可能已经将该请求处理为Spring MultipartRequest,在这种情况下,您可以使用getFile()获取上载内容

如果没有,那么request.inputStream应该可以正常工作

干杯


Lee

对我来说,当我使用“应用程序/八位字节流”MIME请求控制器方法并在请求中发送一些数据时,它会起作用。在控制器中,我可以简单地执行以下操作:

import org.apache.commons.io.IOUtils

def test() {
   byte[] requestData = IOUtils.toByteArray(request.getInputStream())
}

就是这样:-)

对我来说,当我使用“应用程序/八位字节流”MIME请求控制器方法并在请求中发送一些数据时,它会起作用。在控制器中,我可以简单地执行以下操作:

import org.apache.commons.io.IOUtils

def test() {
   byte[] requestData = IOUtils.toByteArray(request.getInputStream())
}

就是这样:-)

不,我没有做多部分。奇怪的是,我创建了一个servlet并在web.xml(grails安装模板)中注册了它,但是它的request.getInputStream()也是空的。出于好奇,我将同一个servlet提取到一个新的普通JavaWeb(EclipseNewProject)中,它可以正常工作。知道为什么吗?不知道,听起来很奇怪。你能用一个全新的Grails应用程序复制它吗?如果是这样的话,我会创建一个JIRA bug报告并附上示例项目。不,我没有做多部分。奇怪的是,我创建了一个servlet并在web.xml(grails安装模板)中注册了它,但是它的request.getInputStream()也是空的。出于好奇,我将同一个servlet提取到一个新的普通JavaWeb(EclipseNewProject)中,它可以正常工作。知道为什么吗?不知道,听起来很奇怪。你能用一个全新的Grails应用程序复制它吗?如果是这样的话,我会创建一个JIRA bug报告并附上示例项目。从何处导入
IOUtils
?它是apache库
org.apache.commons.io.IOUtils
,将修复我的答案…谢谢,最后我使用了
grails.io
,因为
org.apache.commons.io
导入在我的项目中无法解决。应该从哪里导入
IOUtils
?它是apache库
org.apache.commons.io.IOUtils
,将修复我的答案…谢谢,最后,我使用了
grails.io
,因为在我的项目中无法解决导入问题?您应该知道数据是以
MultipartFile
还是
ByteArray
的形式出现的。如果您发送一个文件,您应该像这样检索它:
request.getFile('file')
。但是如果它是一个
字节数组
输入流
应该用它来填充。您如何发送数据?您应该知道数据是以
MultipartFile
还是
ByteArray
的形式出现的。如果您发送一个文件,您应该像这样检索它:
request.getFile('file')
。但是如果它是一个
字节数组
输入流
应该用它来填充。