0
jsp 페이지에서 보내고 JavaScript ajax 호출을 사용하여 컨트롤러 페이지에서 이미지 파일을 읽어야합니다. jsp 페이지의 경고가 파일 객체가 제대로 읽히지 않는 것 같지만 성공한 컨트롤러 대신 Ajax Giver 오류 응답이 수신됩니다.아약스를 사용하여 jsp에서 스프링 컨트롤러로 파일 보내기
를 사용
코드 조각은 JSP 파일을 다음 메신저입니다
<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>
스프링 MVC 우리에게 자바 스크립트
가function pic() {
var formData = new FormData();
formData.append("profilePic", $('#profilePic').get(0).files[0]);
$.ajax({
type:"POST",
url:"/sdnext/updateprofile.html",
processData: false,
contentType: false,
data:{profilePic:formData},
success:function(data){
alert("Profile Picture has been updated successfully");
},
error:function(data){
alert("Profile Picture has not been updated successfully");
}
});
}
컨트롤러
@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();
}
}
모든 샘플 파일 입출력 작업 ing 아약스는 많은 도움이 될 것입니다. 어떤 도움을 주시면 감사하겠습니다.
감사
문제 설명에서 언급했듯이
죄송합니다. 질문을 수정했습니다. –