inputstream只能读取一次
如果你需要多次读取
解决方案:
1.客户端一次发送两次请求
表单一次,ajax中再一次
主要是因为 request 请求无法备份一份出来
(对象的赋值是地址赋值)
2.把inputstream流复制下来
实现复制功能的类
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
public class StreamUtils {
public static byte[] getByteByStream(InputStream is) throws Exception {
byte[] buffer=new byte[1024];
int len=0;
ByteArrayOutputStream bos=new ByteArrayOutputStream();
while((len=is.read(buffer))!=-1){
bos.write(buffer,0,len);
}
bos.flush();
return bos.toByteArray();
}
}
利用字节数组保存,需要用到时再转化回去
InputStream stream = new ByteArrayInputStream(StreamUtils.getByteByStream(InputStream));