2012-06-26 74 views
0

我通過文件輸入上傳了一個文件。如果我使用print_r($ _ FILES),我可以獲得多個信息,但它不會給出文件的完整本地路徑(我的計算機上的路徑,而不是服務器)。我如何得到這個?

我需要這個在CodeIgniter中使用FTP庫。有關如何使用它來上傳文件的文檔是here

正如你所看到的,它需要完整的本地路徑,儘管我不知道爲什麼。

+0

我想使用CI FTP類,而不是文件上傳,因爲它是一個更強大的類,並提供我需要建立一個文件管理器的工具。 – sehummel

回答

0

由於文件上傳路徑是從服務器改變爲服務器變量,我會建議你使用move_uploaded_file()功能:

$target = "uploads/myfile.something"; 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target)) { 
    // do something 
} 

這樣,它會一直努力,無論道路是什麼,即使它的變化。 target可以是任何你想要的,它是相對於正在執行腳本的當前文件夾。

+0

不,我需要的是用戶用來上傳文件的COMPUTER上文件的路徑,而不是SERVER上的文件。 – sehummel

+0

它看起來像CI不會從本地計算機上傳文件。它只會移動服務器上的文件,從我所知道的。但陪審團尚未完成。 – sehummel

+0

對不起,我的誤解。讀取路徑是不可能的,因爲這將是一個很大的安全問題,這就是爲什麼它是JS的安全限制。但是,直到IE8和FF3纔有可能,我不認爲這將是你需要的。 –

0

我解決了這個問題。

public function upload($file, $folder) { 
    $this->CI->ftp->upload($_FILES['file']['tmp_name'], '/public_html/rest/of/path/' . $_FILES['file']['name'], 'ascii', 0775); 
} 

文件正在上傳,這樣你就可以$FILES['file']['tmp_name']訪問它。這是來自課堂內部的,所以這就是我使用$this->CI的原因。否則,我只會使用$this

相關問題