2013-01-03 3 views
4

저는 사용자의 편의를 위해 만든 사용자 지정 콘텐츠 형식이 있습니다. 스키마 (스키마는 아래에 나열되어 있음)에서 첨부 파일/업로드에 'plone.namedfile.field.NamedFile'을 사용합니다.Plone에서 손재수를 사용하여 파일 형식 또는 MIME 형식으로 업로드 제한

내 콘텐츠 유형에 mp3 파일 만 첨부 할 수 있도록 업로드를 제한하고 싶습니다. 이것을 달성하기위한 최선의 방법은 무엇입니까? 나는 여기에 내 검색을 시작해야

<model xmlns="http://namespaces.plone.org/supermodel/schema"> 
<schema> 
<field name="date" type="zope.schema.Date"> 
<description /> 
<title>Date</title> 
</field> 
<field name="speaker" type="zope.schema.TextLine"> 
<description /> 
<title>Speaker</title> 
</field> 
<field name="service" type="zope.schema.Choice"> 
<description /> 
<title>Service</title> 
<values> 
<element>1st Service</element> 
<element>2nd Service</element> 
</values> 
</field> 
<field name="audio_file" type="plone.namedfile.field.NamedFile"> 
<description /> 
<title>Audio File</title> 
</field> 
</schema> 
</model> 

:

여기 내 콘텐츠 유형에 대한 전체 스키마/모델 http://plone.org/products/dexterity/documentation/manual/developer-manual/reference/default-value-validator-adaptors

답변

3

나는 검증의 첫 줄을 자바 스크립트를 사용하기로 결정했습니다. 나는 정보에 대한 내 솔루션 내 스크립트 같은 것을 보이는 조언을 바탕으로 <input type="file"> limit selectable files by extensions

에서 발견을 기반으로했습니다

$(document).ready(function() { 

function checkFile(event) { 
     var fileElement = document.getElementById("form-widgets-audio_file-input"); 
     var fileExtension = ""; 
     if (fileElement.value.lastIndexOf(".") > 0) { 
      fileExtension = fileElement.value.substring(fileElement.value.lastIndexOf(".") + 1, fileElement.value.length); 
     } 
     if (fileExtension == "mp3") { 
      return true; 
     } 
     else { 
      alert("You must select a mp3 file for upload"); 
      return false; 
     } 
    } 

$("form#form").bind("submit",checkFile); 

}); 

이 절반의 해결책이 다음 난에 유효성 검사를 추가해야합니다을 서버 측.

+0

지금까지 서버 측 유효성 검사를위한 방법을 찾았습니까? –

+0

오디오 파일의 서버 쪽 유효성 검사 예제는 다음에서 찾을 수 있습니다. http://stackoverflow.com/questions/14264737/django-python-how-to-read-a-file-and-validate-that- it-is-an-audio-file –

+0

이 링크는 올바른 방향과 같습니다. 일단 작동 시키면 여기에 최종 답으로 메모를 추가하겠습니다. –

관련 문제