Spring mvc 使用ajax将文件从jsp发送到spring控制器
我需要从jsp页面发送一个图像文件,并使用JavaScript ajax调用在控制器页面读取该文件。 jsp页面上的警报似乎表明文件对象已正确读取,但在控制器和ajax给出者错误响应(而不是成功响应)处未收到任何内容 下面是我正在使用的代码片段 jsp文件Spring mvc 使用ajax将文件从jsp发送到spring控制器,spring-mvc,file-io,facebook-javascript-sdk,fileinputstream,Spring Mvc,File Io,Facebook Javascript Sdk,Fileinputstream,我需要从jsp页面发送一个图像文件,并使用JavaScript ajax调用在控制器页面读取该文件。 jsp页面上的警报似乎表明文件对象已正确读取,但在控制器和ajax给出者错误响应(而不是成功响应)处未收到任何内容 下面是我正在使用的代码片段 jsp文件 <table> <tr> <td>Profile Picture</td> <td><input type="file" id="profilePic">&l
<table>
<tr>
<td>Profile Picture</td>
<td><input type="file" id="profilePic"></td>
</tr>
<tr>
<td colspan="2"><button id="updatePic" onclick="pic();">submit pic</button></td>
</tr>
</table>
控制器
@RequestMapping(value="/updateprofile",method=RequestMethod.POST)
public @ResponseBody String updateProfile(@RequestParam("profilePic") InputStream profilePic){
try {
int i=0;
ArrayList<Byte> listOfBytes=new ArrayList<Byte>();
InputStream input=profilePic.getInputStream();
do{
i=input.read();
if(i!=-1)
{
listOfBytes.add((byte) i);
}
}while(i!=-1);
System.out.println(listOfBytes.size());
byte []picBytes=new byte[listOfBytes.size()];
for (int j = 0; j < listOfBytes.size(); j++) {
picBytes[j]=listOfBytes.get(j);
}
} catch (IOException e) {
e.printStackTrace();
}
}
使用ajax在SpringMVC上进行的任何示例FileIO操作都将非常有用。任何帮助都将不胜感激
谢谢检查答案。它详细说明了如何做到这一点 正如我在问题陈述中提到的,我不想要包含表单提交的解决方案,例如。我希望有一个包含ajax组件的解决方案,这样页面就不必重新加载。
@RequestMapping(value="/updateprofile",method=RequestMethod.POST)
public @ResponseBody String updateProfile(@RequestParam("profilePic") InputStream profilePic){
try {
int i=0;
ArrayList<Byte> listOfBytes=new ArrayList<Byte>();
InputStream input=profilePic.getInputStream();
do{
i=input.read();
if(i!=-1)
{
listOfBytes.add((byte) i);
}
}while(i!=-1);
System.out.println(listOfBytes.size());
byte []picBytes=new byte[listOfBytes.size()];
for (int j = 0; j < listOfBytes.size(); j++) {
picBytes[j]=listOfBytes.get(j);
}
} catch (IOException e) {
e.printStackTrace();
}
}