2014-03-25 44 views
0

我想問一下如何限制PHP圖片上傳的文件類型?我只想限制爲PNG,JPG和GIF。對於這個noob問題抱歉。PHP如何限制像jpg,gif,png這樣的文件類型條件?

我試過的是給條件添加'OR'。但是,如果我上傳jpg,gif或png,它不起作用?

<?php 

//limit file type condition 
if(!($_FILES["photo"]["type"] == "image/png") 
|| !($_FILES["photo"]["type"] == "image/jpg") 
|| !($_FILES["photo"]["type"] == "image/gif")){ 

echo "You may only upload png, jpg or gif.<br>"; 
$ok=0; 
} 

?> 
+0

如果文件類型是那些之一爲什麼它的工作你要? – Anthony

+0

@Anthony,我只想讓png,jpg和gif。如果文件不是其中的一個,則回顯「你可能只上傳,png,jpg或者gif。 – user2192094

+0

你需要改變Or to和因爲你檢查所有三個都是* not * true,所以三個都必須通過。所以更改||爲&& – Anthony

回答

2

你可以做這麼多利用in_array()短,更具可讀性:

$allowed_extensions = array("image/png", "image/jpg", "image/gif"); 

if (!in_array($_FILES[ "photo" ][ "type" ], $allowed_extensions)){ 
    echo "You may only upload png, jpg or gif.<br>"; 
    $ok = 0; 
} 
+0

謝謝@Lix,它的工作原理! – user2192094

+0

@ user2192094 - 很高興幫助:)快樂編碼! – Lix

0

做這樣的

$config['upload_path'] = ''; 
$config['allowed_types'] = 'gif|jpg|png';  //pic type 
$config['max_size'] = '100'; 
$config['max_width'] = '1024'; 
$config['max_height'] = '768'; 
$this->load->library('upload', $config); 
$this->upload->initialize($config); 

if (! $this->upload->do_upload()) 
{ 
    $error = array('error' => $this->upload->display_errors()); //you will get error statement in $error 
} 
else 
{.... 
} 
+0

謝謝,但我不知道如何使用它? – user2192094

+0

這是一個外部庫,答案錯誤地假定每個人都是熟悉。 – Anthony

相關問題