PHP文件上载脚本在我的服务器上不起作用,但适用于不同的服务器

时间:2013-03-08 10:48:37

标签: php

这是我在服务器上测试的脚本,表示文件上传失败。 但是,当我尝试不同的服务器时,它的工作原有没有人知道这与我的php.ini设置或...

有关
<form enctype="multipart/form-data" action="fupload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

<?php

$uploaddir = '/var/www/vhosts/costsave.net.au/httpdocs/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo "<p>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
   echo "Upload failed";
}

echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";

?>

错误

enter image description here

2 个答案:

答案 0 :(得分:2)

与文件上传相关的设置:

  • file_uploads
  • 的upload_max_filesize
  • upload_tmp_dir
  • 的post_max_size
  • max_input_time设置

参考:http://www.php.net/manual/en/features.file-upload.post-method.php

  

file_uploads 布尔值或整数

     

是否允许上传HTTP文件。

临时上传目录的权限是否也正确?

  

upload_tmp_dir 字符串

     

用于的临时目录   在进行文件上传时存储文件。必须是可写的   用户PHP正在运行。如果没有指定PHP将使用系统   默认。如果此处指定的目录不可写,则PHP将失效   回到系统默认的临时目录。如果打开open_basedir,   然后必须允许系统默认目录上传到   成功

答案 1 :(得分:1)

请检查CHMOD是否设置为/var/www/vhosts/costsave.net.au/httpdocs/uploads/并具有写入权限。

作为另一种选择,您可以输出$_FILES['userfile']['error']以查看会发生什么。