2013-03-08 138 views
0

这是我在我的服务器上测试的脚本,它说文件上传失败。 但是,当我尝试在不同的服务器上工作。是否有任何人知道这事与我的php.ini的设置或...PHP文件上传脚本在我的服务器上不起作用,但适用于不同的服务器

<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

+1

最有可能的权限问题。你有错误设置显示? – 2013-03-08 10:49:50

+0

最常见的问题是缺少文件夹的“写入”权限。先从列表中取出那件东西。 – asprin 2013-03-08 10:49:52

+1

部分主机禁止move_uploaded_file() – 2013-03-08 10:50:23

回答

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

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

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

+0

他们CHMOD是777所以它看起来很好 http://costsave.net.au/admin/fupload.php – Dips 2013-03-08 11:03:38

+0

你的活网址现在有另一个解析错误;) – sebastian 2013-03-08 12:07:01

+0

我现在发现了问题。我的服务器tmp文件夹已满,这是它无法创建tmp文件的原因。 – Dips 2013-03-08 12:11:26