서버에 업로드 된 캔버스 요소에서 웹캠으로 찍은 사진을 가져 오려고합니다. 나는 플레이 프레임 워크 1.2.5.3을 이용하고 있고 나는 HTML에게 다음과 같은 코드가 있습니다 :HTML 캔버스 이미지를 컨트롤러 메서드로 전달할 때 널 포인터가
<canvas id="canvas" width="200" height="180"></canvas>
<button id="snap" onClick="testIT()">Snap Photo</button>
을 캔버스에 영상을 업로드하도록되어 양식 :
<form action="@{Drivers.addPhoto2}" method="POST" enctype="multipart/form-data">
<input type="file" name="f1" id="dp" />
<input type="submit" name="submit" value="Upload" />
</form>
을 클릭 은 "스냅"버튼에 testIT() 메소드가 호출되고 : 그것은 다음과 같습니다 컨트롤러에서
function testIT() {
window.alert("testing...");
var image = new Image();
var canvas = canvas = document.getElementById("canvas");
image.src = canvas.toDataURL("image/png");
window.alert("varialbles created");
document.getElementById('dp').value = image;
window.alert("all done");
}
:
@Util
private static void addPhoto(Object driverPhoto) {
System.out.println("addphoto statede");
if (driverPhoto == null) {
System.out.println("is null");
//return;
} else {
System.out.println("not null");
}
System.out.println("is class: = " + driverPhoto.getClass());
Driver driver = User.find("byEmail", Security.connected()).first();
driver._save();
index();
}
public static void addPhoto2(Object f1) {
System.out.println("photo2 started");
addPhoto(f1);
}
이제 "스냅"버튼이 눌려지면 그림이 그려지고 (웹캠에서이 부분이 작동 함) 캔버스에 표시됩니다. 그런 다음 그림이 양식의 INPUT으로 전송되고 거기에서 새 그림 (유형 : BLOB)이 작성되고 드라이버에 추가되는 서버로 그림이 업로드됩니다. 실제로 일어나는 것 : 그림이 캔버스에 그려지고 업로드 버튼을 누르면 addPhoto2 메서드가 호출되지만 addPhoto에서 nullpointer 예외가 발생합니다. 여기에 전체 오류 메시지 :
요청 POST/드라이버/addphoto2 (라인 (56)의 주위에 /app/controllers/Drivers.java에서)
실행 예외에 대한 내부 서버 오류 (500) NullPointerException이 발생했습니다 널 (null) controllers.Drivers에서 java.lang.NullPointerException이 :에 의한 Invocation.HTTP 요청 (! 플레이)에서 play.mvc.ActionInvoker.invoke (ActionInvoker.java:237)에서
는play.exceptions.JavaExecutionException. addPhoto (Drivers.j (ActionInvoker.java:508) 에서 컨트롤러 .Drivers.addPhoto2 play.mvc.ActionInvoker.invoke에서 play.mvc.ActionInvoker.invokeControllerMethod (ActionInvoker.java:479) 에서 play.mvc.ActionInvoker.invokeControllerMethod (ActionInvoker.java:484) (ActionInvoker.java:161)에서. .. 1 더
내가 뭘 잘못하고 있니?
고마워요! 방금 Object에서 File로 모든 것을 변경했지만 여전히 동일한 NullPointerException을 얻고 있습니다. – Paperman
@Paperman 같은 줄에 똑같은 예외가 생기면 다른 테스트가 잘못되어 테스트 응용 프로그램 (게시 한 코드에서 작성)에서 문제가 해결되어야합니다. 내 테스트 애플리케이션과 코드의 유일한 큰 차이점은 모델이 없기 때문에'addPhoto'의 마지막 3 행을 주석 처리했다는 것입니다. – gpgekko
@Paperman 여러분이 지금 당면하고있는 문제는 JPA 측과 관련이 있다고 생각합니다. 모델에 사진을 어떻게 추가합니까? (여기의 코드에서는 보이지 않습니다.) – gpgekko