我有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的错误日志说什么?