ファイル入力ダイアログを制限して、特定の種類のファイルのみを表示する方法があるかどうかを知りたかっただけです。私の Web ページは .bin または .gz ファイル タイプのみを受け入れることができますが、ユーザーは他のファイル タイプを選択してアップロードを試みることができます。
間違った種類のファイルがアップロードされるのを防ぐ最善の方法は何ですか?
ファイルアップロード用のコントローラーは次のとおりです。
public function uploadFile()
{
$this->Session->write('isFileUpload', false);
$this->Session->write('isFileLarge', false);
if($this->request->is('post'))
{
$uploadedFile = array();
// Check if the Document object is set
// If it is set, process the file for uploading,
if(isset($this->request->data['Document']))
{
$filename = $this->request->data['Document']['MyFile']['tmp_name'];
$uploadedFile['MyFile']['name'] = $this->request->data['Document']['MyFile']['name'];
$uploadedFile['MyFile']['type'] = $this->request->data['Document']['MyFile']['type'];
$uploadedFile['MyFile']['size'] = $this->request->data['Document']['MyFile']['size'];
// Move the file to the /home/spectracom folder
$filePath = DS . 'home' . DS . $uploadedFile['MyFile']['name'];
if (move_uploaded_file($filename, $filePath))
{
$this->Session->write('isFileUpload', true);
$this->Session->write('isFileLarge', false);
$this->redirect('/tools/upgradebackup');
}
else
{
$this->Session->write('isFileUpload', false);
$this->Session->write('isFileLarge', true);
$this->redirect('/tools/upgradebackup');
}
}
else
{
$this->Session->write('isFileUpload', false);
$this->Session->write('isFileLarge', true);
$this->redirect('/tools/upgradebackup');
}
}
}
私は基本的に、ファイルが存在すること、または大きすぎることを確認します。メインのアップグレード ページに戻ると、セッション変数が設定されます。
ありがとう