2012-06-26 69 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

相关问题