2011-08-22 72 views
1

我正在構建一個php應用程序。 我可以輕鬆上傳圖片或任何其他類型的數據,但不是.jar。下面我的代碼:上傳.jar與php問題

upload.php的

<form action="getfile.php" method="post" name="uploadForm" id="uploadForm" enctype="multipart/form-data" ><br> 
    <?php echo gettext("Image "); ?> 
     <input name="imagen" value="" type="file" id="imagen" /> 

    <?php echo gettext("Jar "); ?> 
     <input name="jarFile" value="" type="file" id="jarFile" /> 
</form> 

getfile.php

$fileName = $_FILES['jar']['name']; 
$fileType = $_FILES['jar']['type']; 
//Check the extension 
if (!strpos($fileType, "jar")) { 
    echo gettext("The simulation must be jar extension. Try again."); 
}else{ 

    if (move_uploaded_file($_FILES['jar']['tmp_name'], $path)){ 
     echo gettext("Simulation stored succesfully."); 
    }else{ 
     echo gettext("Something happened. Try again. "); 
    } 
} 

對於圖片,我遵循同樣的形式給出,但是當我嘗試上傳一個jar文件,我總是得到錯誤

T他的模擬必須是jar延伸。再試一次

and $fileType爲空。這一點有沒有限制?我錯過了什麼?

在此先感謝

+0

這要求基本調試。看看'$ fileType',看看它說什麼 –

+0

'$ _FILES ['jar'] ['type']'爲空。該字段並不總是填充。 –

+0

以及如何檢查上傳的資產是否爲罐子? –

回答

1

type屬性是不可靠的(通過瀏覽器填充)。最好的辦法是檢索MIME文件類型:

$fhandle = finfo_open(FILEINFO_MIME); 
$mime_type = finfo_file($fhandle, $_FILES['jar']['tmp_name']); 

$mime_typeapplication/java-archive

PHP> = 5.3.0

+0

.jar = 0的大小,類型爲空,如果我擺脫了任何if語句,我可以看到錯誤「發生了什麼。再試一次。 '容器上傳是否允許?可能是代碼的另一部分的錯誤? –

+1

該文件沒有上傳。檢查你的php.ini設置,並確保你的表單中有一個名爲'MAX_FILE_SIZE'的隱藏輸入。 –

+0

另外,'$ _FILES ['jar'] ['error']'輸出了什麼? –