2013-03-08 140 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