2016-08-20 17 views
-2

之前比較文件的大小我有問題,下面的代碼:PHP上傳

$target_dir = "images/"; 
$folder = "folder/"; 
$target_file = basename($_FILES["file"]["name"]); 
$target_file_size = filesize($target_dir.$folder.$target_file); 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
$file_comp = $_FILES["file"]["size"] - $target_file_size; 

// Check if file already exists 
if (file_exists($target_dir.$folder.$target_file && $file_comp == 0)){ 
    echo $target_file." already exists.<br>"; 
} 

檢查永遠不會返回正確的,即使文件已經exixts並具有相同的大小,我不知道爲什麼。

+0

檢查括號 –

+0

爲此道歉!恥辱!!也許我需要休息........無論如何,謝謝! –

+0

@FrancescoGiunta固定括號解決了問題嗎?如果是這樣,然後張貼答案。 –

回答

2

if

if(
    file_exists(
     $target_dir.$folder.$target_file && $file_comp == 0 
    ) 
) 

仔細看所以你檢查&&操作的結果存在。

正確的代碼是:

if(
    file_exists(
     $target_dir.$folder.$target_file 
    ) 
    && 
    $file_comp == 0 
) 
0

目標是驗證一個文件都已經被正確加載。 如果上傳過程停止,文件通常文件大小錯誤,通常很小,然後正常。因此,檢查文件上傳的大小是否與服務器上已有的同名文件的大小相同可以提供幫助。

使文件大小相減是錯誤和複雜的方式,以便更好,更容易地直接比較文件大小。

$file_to_upload = $_FILES["file"]["name"]; 
$target_file = basename($_FILES["file"]["name"]); 
$target_file_size = filesize($target_dir.$folder.$target_file); 

if (file_exists($target_file) && $_FILES["file"]["size"] == $target_file_size) { 
echo $target_file." already exists.<br>"; 
} 

再次感謝!