我做了一個腳本,它必須從ftp-server加載一個文件然後解析它。代碼依賴臨時名來存儲臨時存儲的ftp文件。在我的研究與開發的服務器(使用PHP 5.3.10),這完美的作品,但在客戶機(使用PHP 5.2.17),它不是做,給我:tempnam()不能在客戶端服務器上工作
Warning: ftp_rawlist() [function.ftp-rawlist]: Unable to create temporary file. Check permissions in temporary files directory.
能有人給我一個線索我可以做? (我對PHP的possibiities有點弱)
我用這個代碼:
define ("LOCALFILE",tempnam('/tmp', 'data-'));
define ("USER","myusername");
define ("PASS","mypassword");
define('SERVER', "ftpserver.com");
define ("DIR","/path/");
function getFTPFile(){
// connect
if(!($conn_id = @ftp_connect(SERVER))){
Error::throwOne("Could not connect to ".SERVER);
};
// login
if(!($login_result = @ftp_login($conn_id, USER, PASS))){
Error::throwOne("LOGIN INCORRECT! user:".USER." pass:".PASS);
};
// try to change the directory to somedir
if (!ftp_chdir($conn_id, DIR)) {
Error::throwOne("Couldn't change directory\n");
};
if(!($a = ftp_rawlist($conn_id, '-1t'))){
Error::throwOne("Couldn't get ftp_rawlist\n");
};
$server_file=($a[0]);
if (!ftp_get($conn_id, LOCALFILE, $server_file, FTP_BINARY)) {
Error::throwOne("Couldn't get file\n");
};
ftp_close($conn_id);
};
您是否有權寫入指定的目錄? –
這個錯誤在我看來像系統生成的,與你的'tmpname'無關。在內部,FTP將文件存儲在自己的臨時文件中臨時文件名中的標準臨時目錄中,直至下載完成 - 然後將其移至您指定的位置。 –