2011-10-12 3 views
4

Windows 용 Safari 브라우저에 이상한 문제가 있습니다.Safari 브라우저에서만 비 ASCII 문자 입력 양식 추가

jQuery를 기반으로 HTML5 끌어서 놓기 업로드 양식이 있습니다. 사파리를 제외한 모든 브라우저에서 잘 작동합니다. 특정 확장명을 가진 파일의 경우 파일 이름 뒤에 파일 이름 뒤에 비 ASCII 문자가 채워집니다.

예를 들어, 파일 example.mov는example.movçðÆê

이 또한 파일이 손상된다 : 그들은 아무 내용이없는 것 같다.

Safari 및 jQuery/HTML5의 알려진 문제입니까? ASCII 문자가 아닌 문자를 필터링하는 방법이 있습니까?

+0

사용할 수있는 확장의 끝에서 위와 같이 문자를 제거 할 당신은 것입니다 서버 측의 파일을 처리하는 방법 도움이 –

+0

서버 측에서 게시 값을 받고 데이터베이스에 저장하는 PHP 스크립트가 있지만 문제는 사용자가 이미 패딩 된 이름을 본 것입니다. – Vasilis

+0

Mac 또는 PC에서 Safari입니까? 문제를 일으키는 파일 시스템 자체 일 수 있습니다. 사파리가있는 다른 플랫폼에서 문제가 계속 발생하는지 확인해 보셨습니까? – dSquared

답변

2

Pekka와 같이 나는이 상황에서 100 % 아니지만 문자열에서 '잘못된'문자를 제거하기에 충분하다면 정규 표현식을 사용할 수 있습니다. 이 문자는 a-z, A-Z, 0-9 또는 .이 아닌 문자를 제거합니다. 너무 제한 될 수있다

filename.replace(/[^a-z0-9\.]+/gi, ""); 

(예를 들어 당신이 영어 이외의 언어와 같은 파일 이름을 허용 할 또는 당신은 단지 확장 후 문자를 제거 할). 문제를 가정하면 MOV 및 PDF 확장자입니다 만, 당신은 몇 가지 코드를보고

filename.replace(/(\.mov|\.pdf)[^a-z0-9\.]+$/i, "$1");