2011-03-25 73 views
2

我想讀取服務器上使用fopen和fread在php中上傳的視頻文件,但fopen返回"unable to open file"fopen無法打開位於服務器上的視頻文件

//test.php 
    <?php 
    $file=fopen("abc.mov","r") or exit("Unable to open file!"); 
    ?> 

abc.mov存在於test.php所在的同一個文件夾中,即在同一個層次上。

我不爲什麼它無法讀取文件。 請幫忙。

+0

如果在fopen()調用中放入視頻文件的完整路徑,而不是名稱,會發生什麼? – aroth 2011-03-25 12:42:42

+0

實際運行此腳本的用戶是否有權打開該文件? – 2011-03-25 12:43:53

+0

我建議嘗試使用文件的絕對路徑而不是相對路徑。 – 2011-03-25 12:44:08

回答

0

檢查您的文件訪問權限,確保您有權訪問PHP中的文件。

+0

您能否告訴我如何檢查php – Aisha 2011-03-25 12:57:20

2

這可能不是PHP或您的文件的真正問題。這很可能是文件權限的問題。有三件事你可以在這裏嘗試(可能更多我不知道)。一,這樣做的地方在你的腳本則fopen前:

chmod("abc.mov", 0777); 

然後回聲fileperms(),只是爲了檢查(取出調試後):

echo fileperms("abc.mov"); 

最後,調用FOPEN之前,請確保is_readablefile_exists返回true:

if(file_exists("abc.mov") and is_readable("abc.mov")) { 
    $file = fopen("abc.mov","r") or exit("Unable to open file!"); 
} 
else die("File isn't readable, or maybe doesn't even exist!"); 

注:我會用file_get_contents()file_put_contents()而非FOPEN。

希望這會有所幫助!

+0

Thanx的文件權限以獲取幫助。我用ur代碼,它返回消息文件不可讀,或者甚至不存在。但是我更改了服務器的文件權限,那爲什麼是這個msg。你能建議如何改變文件權限,以便它變得可讀。 – Aisha 2011-03-28 12:11:01

+0

0777是* all *權限。它應該是可讀的,可寫的和可執行的。也許你應該嘗試製作一個空白的文本文件並嘗試打開它。 – 2011-03-28 12:51:00

相關問題