PHP move_uploaded_file还有一个不起作用

时间:2010-02-04 09:24:21

标签: php upload

我真的无法想出这个,只是得到一个基本的上传脚本,但文件不会上传。

Form 
 => enctype is set

print_r($_FILES['Product_Thumb']) 
 => [Product_Thumb] 
  => Array ( 
      [name] => prototype.js 
      [type] => application/x-javascript 
      [tmp_name] => /tmp/phpXzL6CT 
      [error] => 0 
      [size] => 139854 ))

我确实在上传文件夹中将权限(-R)设置为777。 将所有者:组更改为www-data:www-data。
Mkdir在我用于上传文件的确切路径上工作。 尝试了不同的文件,尝试了另一个文件夹,硬编码了目标文件路径,仍然无法正常工作。

我在/ var / tmp /中看到了这个文件,但是移动只是没有用,没有任何错误。

我真的忽略了什么吗?

提前Thanx!

=============================================== ======================== 调试输出:

Debug:tmp file:/ tmp / phpgYOo9a

调试:目标目录:/ var / www / clubgevoel / public / img / producten /

调试:真实目标:/ var / www / clubgevoel / public / img / producten

调试:源可读:

调试:target is_dir:yes

调试:目标可写:是

调试:move:bool(false)

5 个答案:

答案 0 :(得分:0)

服务器上的完整文件配额?

答案 1 :(得分:0)

move_uploaded_file如果失败则应发出警告(即返回false)。确保使用display_errors测试上传脚本,并在error_reporting to ALL上测试,如下所示:

ini_set('display_errors',1);

error_reporting(-1); //或error_reporting(E_ALL); (http://de2.php.net/manual/en/function.error-reporting.php

这些行应放在脚本中的任何其他行之前。这样你至少可以发现错误的原因

答案 2 :(得分:0)

我猜你正在使用绝对路径作为目的地。尝试相对的路径

答案 3 :(得分:0)

让我们添加更多调试输出....什么是

// "also tried: move_uploaded_file($_FILES['Product_Thumb']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/clubgevoel/public/img/producten/2.jpg');"
error_reporting(E_ALL); ini_set('display_errors', 1);
$targetDir = $_SERVER['DOCUMENT_ROOT'] . '/clubgevoel/public/img/producten/';
$realTargetDir = realpath($targetDir);

ini_set('display_errors', 1);
echo '<pre>Debug: tmp file:', htmlspecialchars($_FILES['Product_Thumb']['tmp_name']), "</pre>\n";
echo '<pre>Debug: target directory: ', htmlspecialchars($targetDir), "</pre>\n";
echo '<pre>Debug: real target: ', htmlspecialchars($realTargetDir), "</pre>\n";
echo '<pre>Debug: source readable: ', is_readable($_FILES['Product_Thumb']['tmp_name']), "</pre>\n";
echo '<pre>Debug: target is_dir: ', is_dir($targetDir) ? 'yes':'no', "</pre>\n";
echo '<pre>Debug: target writable: ', is_writeable($targetDir) ? 'yes':'no', "</pre>\n";

$b = move_uploaded_file($_FILES['Product_Thumb']['tmp_name'], $targetDir. '2.jpg');
echo '<pre>Debug: move: '; var_dump($b); echo "</pre>\n";

打印?

答案 4 :(得分:-1)

Debug:tmp file:/ tmp / phpgYOo9a

调试:目标目录:/ var / www / clubgevoel / public / img / producten /

调试:真实目标:/ var / www / clubgevoel / public / img / producten

调试:源可读:

调试:target is_dir:yes

调试:目标可写:是

调试:move:bool(false)