2012-02-23 29 views
1

私はtype = fileの入力を持っています。これは画像をアップロードするために使用されます。今では、イメージのサイズを500 KBに制限し、.pngにのみ入力したいと考えています。助けてくださいjqueryの画像サイズとタイプを制限する

答えて

0

アップロードする前にファイルサイズを確認するローカルファイルシステムにアクセスできないので、これはjavascriptだけでは不可能です。

回避策は、ローカルファイルへのアクセス権を持つFlashを使用するか、サーバー側でファイルをチェックすることですが、大規模なファイルをアップロードする前にアップロードすることはできませんサイズの妥当性。私は、これはサーバーサイドを行わなければならないと思う

 

var ext = $('#my_file_field').val().split('.').pop().toLowerCase(); 
if($.inArray(ext, ['png']) == -1) { 
    alert('invalid extension!'); 
} 
 
0

は、私はあなたのような何かを行うことができ、あなたはファイル拡張子のためには、JavaScriptを使用してファイルのサイズを制限することができ思ういけません。 jQueryでファイルアップロードのサイズを検出できるとは思いません。これは、JavaScriptがローカルファイルシステムにアクセスできないためです。

0

試してみてください。

<input type="hidden" name="MAX_FILE_SIZE" value="500000" /> 

指定された値がこのフォーム経由でアップロードする最大許容KBです。 100000の値はファイルを100kbまで許容します。

はしかし、これはHTMLで、バイパスすることができ、あなたはまだのようなPHP /サーバー側の検証を行う必要があります:PHPで

IF($_FILES['file']['size'] > 500000){// show error} 

、サイズの値はバイト単位で

であるかを確認することができます$ _FILES [ 'ファイル'] [ '型']のみPNGファイルにそれを制限する、例えば:

IF($_FILES['file']['type'] != "image/jpeg"){// show error} 
+0

MAX_FILE_SIZEのバイト数は、Kbではありません。また、そのサポートはせいぜいばらつきがあり、トラップ可能なエラーは発生しません。 –

+1

ありがとう、答えを編集しました –

0

はこれを試してみてください:

var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
var filepath = document.upload.file.value; 
var thefile = myFSO.getFile(filepath); 
var size = thefile.size; 

var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase(); 
if(ext=="png" && size=500000) 
return true; 
else 
alert("invalid filetype or size greater than 500kb"); 
関連する問題