Yii 1.1.8-CMultiFileUploadを使用して任意の拡張子のファイルをダウンロードする

すべての人に良い一日を!



最近Yiiにサイトを作ったので、CMultiFileUploadを使用してファイルをサーバーにアップロードする際にそのような穴を発見しました(Mx21に特に感謝します )。 。 「accept」プロパティには、たとえば「jpeg | jpg | gif | png」という値がありますが、 この種類の写真以外はアップロードしないでください。ファイルは問題なくサーバーにアップロードされ、最終ファイルの.jpgは切り捨てられ、ソースファイルは名前を変更する前の拡張子でサーバーに表示されました。

私たちが使用しているフレームワークのバージョンは1.1.8です。



次のように扱われます。

/framework/web/js/jquery.multifile.jsファイルで、222〜223行目を修正する必要があります。

if(MultiFile.accept && v && !v.match(MultiFile.rxAccept))//{ ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));
      
      





代わりに、次のコードに置き換えます。

  var str=this.value; var pattern='\.'; var pos = str.indexOf(pattern); for (var count = 0; pos != -1; count++) pos = str.indexOf(pattern, pos + pattern.length); if((MultiFile.accept && v && !v.match(MultiFile.rxAccept)) || count>1)//{ ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));
      
      







つまり ダウンロードしたファイルの名前にポイント数のチェックを追加しました。複数のポイントがある場合、「無効なファイルタイプ」というエラーメッセージが表示されます。



All Articles