2011-10-12 14 views
4

Windows用Safariブラウザで奇妙な問題に直面しています。サファリブラウザのみで非アスキー文字の入力が追加されました

私は、jQueryに基づいてHTML5ドラッグアンドドロップフォームをアップロードしています。 Safariを除くすべてのブラウザでうまく動作します。特定の拡張子を持つファイルの場合、ファイル名の後ろに非アスキー文字が埋め込まれます。

例えば、ファイルexample.movexample.movçðÆê

なりまた、ファイルが破損している:彼らは内容を持たないように見えます。

これはSafariとjQuery/HTML5の既知の問題ですか?非アスキー文字をフィルタアウトする方法はありますか?

+0

を使用することができます便利な –

+0

サーバ側で私はポスト値を受け取りデータベースに保存するPHPスクリプトを持っていますが、問題はユーザが既にパディングされた名前を見ていることです。 – Vasilis

+0

このSafariはMACまたはPC上にありますか?問題の原因となっているファイルシステム自体である可能性があります。 Safariを使って別のプラットフォームで試したことがありますか? – dSquared

答えて

2

Pekkaのように、私はここの状況で100%ではないが、文字列から「間違った」文字を取り除くのに十分であれば、正規表現を使うことができます。これは、a-zA-Z0-9または.以外の文字を削除します。

厳しすぎるかもしれ
filename.replace(/[^a-z0-9\.]+/gi, ""); 

(例えば、あなたが非英語のようなファイル名を許可したいか、あなただけの拡張子の後に文字を削除したいです)。問題はMOVとPDFの拡張機能であり、あなたは唯一、上記のように延長の末から文字を削除したいと仮定すると、あなたはいくつかのコードとどのようにサーバー側でファイルを扱うだろうと見て

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