PHP上传的问题

我有php上传的问题,我有以下代码:

define('GW_UPLOADPATH', '/var/www/train/ch5/images/'); $name = $_POST['name']; $score = $_POST['score']; $screenshot = $_FILES['screenshot']['name']; $target = GW_UPLOADPATH.$screenshot; echo $_FILES['screenshot']['tmp_name'].'<br/>'; move_uploaded_file($_FILES['screenshot']['tmp_name'], $targe) or die("Upload Error!"); 

我得到上传错误! file upload的临时文件是:

的/ tmp / php9Khayp

但在/ tmp我找不到这个文件。 我正在使用Ubuntu 10.10。 谁能说我的问题在哪里?

apache error.log: [Wed Aug 10 20:54:17 2011] [error] [client ::1] PHP Warning: move_uploaded_file(/var/www/train/ch5/images/phizsscore.gif): failed to open stream: Permission denied in /var/www/train/ch5/addscore.php on line 22, referer: http://localhost/train/ch5/addscore.php [Wed Aug 10 20:54:17 2011] [error] [client ::1] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpmkZEr3' to '/var/www/train/ch5/images/phizsscore.gif' in /var/www/train/ch5/addscore.php on line 22, referer: http://localhost/train/ch5/addscore.php [Wed Aug 10 20:54:18 2011] [error] [client ::1] File does not exist: /var/www/favicon.ico

你有一个错字。 $targe应该是$target

 move_uploaded_file($_FILES['screenshot']['tmp_name'], $targe) ---------------------------------------^^^^^^ 

否则,您将永远无法在/tmp看到该文件,因为它仅在PHP脚本的生命周期中保留。 一旦脚本执行完成,文件将被清理。 除非成功调用move_uploaded_file()否则在脚本终止之后,您无法在磁盘上访问它。

UPDATE

如果$target变量不是问题,请确保Apache Web服务器用户(www-data,httpd,apache可能)具有对目标/var/www/train/ch5/images/写权限:

 # assuming the Apache user is apache... sudo chown root:apache /var/www/train/ch5/images/ sudo chmod g+rwx /var/www/train/ch5/images/ 

你的代码是否有权限写文件到/ tmp?

Apache的错误日志说什么?