2016-12-16 1 views
4

다른 일반 입력 필드와 함께 백엔드에 여러 파일 (동시에 10 개)을 동시에 보내는 양식이 있습니다.유효성 검사 오류 후 양식 파일 보관

백엔드에서 유효성 검사 문제가 발견되면 양식을 다시 표시하고 일반 입력 (드롭 다운, 텍스트 입력 등)을 채우지 만 파일 필드를 채울 수 없으므로 사용자가 파일을 선택해야합니다. 파일 디렉토리를 다시보십시오.

내가 생각하는 해결책은 파일의 base64로 인코딩 된 표현을 보내고 유효성 검사 오류가있는 경우 양식에 다시 넣는 것이지만 더 간단한 방법이 있는지 알고 싶습니다.

+0

훨씬 더 많은 정보가 필요합니다. 이 질문은 현재 형식 – Liam

+0

에서 어떤 기술 백엔드를 사용하고 있습니까? 몇 가지 코드 또는 뭔가 보여? – Liam

+0

대답은 다음과 같습니다. 제출과 상관없이 업로드 ... 파일에 배치 번호 첨부 ... 유효성 검사가 실패하면 이미 업로드 된 파일을 다시 선택할 필요가 없습니다 ... 필요한 유일한 부분 고정되는 것이 검증입니다. x 시간 후에 서버로부터 삭제 될 유효성 검사를 결코 통과하지 못한 불법 파일에 타임 아웃을 첨부하십시오. 브라우저 보안상의 이유로 .. 당신이 원하는 것을 성취 할 수 없을 것입니다 ... 이것은 차선책입니다. 당신이 의미하는 바를 따라하기를 바랍니다. – Seabizkit

답변

1

서버 측 유효성 검사를 건너 뛸 수 없습니다. 보안상의 이유로 (예 : 원시 요청을 보내는 누군가). 지금까지 오류 (또는 간단한 다시로드)의 경우 파일을 보여주는 것처럼 Base64로 보내 겠지만 파일이 큰 경우 AJAX를 통해 보냈습니다.

  1. 클라이언트 측 유효성 검사 : 대부분의 검증은 (모든 경우) 일반 JS를 사용하여 수행 할 수 있습니다. 파일 유형, 내용 유형 및 파일 유형 (이미지, 문서 등)에 따라보다 구체적인 검증을 받으십시오.
  2. 서버 측 유효성 검사 : 일단 전송되면 파일 및 내용의 유효성을 완전히 검사하십시오.
  3. 파일을 다시 보냅니다. : 오류가 발생하는 경우 작은 요청 인 경우 파일을 보내주십시오. 큰 경우 AJAX를 통해 전송하여 차단을 피하고 페이지로드 시간을 빠르게 유지합니다.

희망 하시겠습니까?

0

것이 가장 간단한 것은 :

1) 일단 다른 모든 입력의 유효성을 검사하는 클라이언트 측 (자바 스크립트/JQuery와)

2) 모든 필드의 유효성 검사는, 당신은 파일에 보냅니다.

NB : 서버 측에서 일부 값의 유효성을 검사해야하는 경우 단계 (1)과 (2) 모두에 ajax를 사용하십시오. 또한 품질에 대한 답변을 얻기 위해 좀 더 자세한 정보를 제공하려고 시도하십시오.

+0

두 번째 요청에서 전송 된 매개 변수가 첫 번째 매개 변수에서 전송 된 매개 변수와 다를 수 있으므로 두 가지 다른 HTTP 호출에서 유효성 검사와 제출을 수행하면 유효성 검사가 취소됩니다. – Bustikiller

0

업로드 된 파일에 대한 임시 저장소를 만들고 전체 파일이 아닌 저장소에서 가져온 유일한 고유 ID를 다시 보냅니다.

단일 파일 업로드의 양식 섹션에는 고유 한 파일 ID가있는 숨겨진 입력이 포함됩니다.

요청을 처리 할 때 : 요청에 파일이 있으면 파일을 가져 와서 (형식이 유효하지 않은 경우 저장) 그렇지 않으면 파일 -ID가 있으면 저장소에서 파일을 가져옵니다.

관련 문제