2011-06-03 41 views
0

目前我的頭髮因爲上傳大文件而出現這個問題,所以我希望有人能幫助解決這個問題!通過網頁上傳FTP文件 - 爲什麼它不適用於較大的文件?

我有這個上傳腳本可以很好地處理小文件,但是當我嘗試更大的文件時,我收到一條錯誤消息「文件名不能爲空」,我發現它很混亂。

上傳到第三方ftp主機。

這是腳本,因爲它是: -

$file = $_FILES['ufile']['tmp_name']; 
    $remote_file = $_FILES['ufile']['name']; 

    $conn_id = ftp_connect("www.ftphostinguk.com"); 
    $ftp_user_name = "****"; 
    $ftp_user_pass = "***********"; 

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

    if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) { 
     echo "successfully uploaded $file\n"; 
    } else { 
    echo "There was a problem while uploading $file\n"; 
    } 

    ftp_close($conn_id); 

我認爲這是最困惑我就是爲什麼它的工作對小文件,但不適合大文件的事情嗎?

在此先感謝。

修改添加:當我使用「回聲」來顯示文件名我得到一個空白的響應爲較大的文件。 我想知道如果我誤解了以這種方式上傳文件的基本過程?我認爲臨時文件已上傳到FTP服務器,但有可能文件首先上傳到網絡服務器?

+0

定義「較大」?多大? – 2011-06-03 10:35:30

+0

什麼是您的php.ini中的upload_max_filesize值? – 2011-06-03 10:41:20

+0

@Pekka - 測試文件剛好超過10米,最終這可能高達200米。 @etbal我無法訪問php.ini。我原來的做法是嘗試上傳文件到網絡主機,但他們有一個上傳大小限制,所以我創建了一個帳戶與第三方FTP主機 – Andrew 2011-06-03 10:52:03

回答

3

你的PHP腳本是最有可能超時,嘗試添加這些到你的頁面的頂部,並調整設置(300秒5分鐘):

ini_set('upload_max_filesize', '10M'); 
ini_set('post_max_size', '10M'); 
ini_set('max_input_time', 300); 
ini_set('max_execution_time', 300); 
+0

嗨,恐怕這似乎不適用於我。我已將設置更改爲30米,超時延遲爲10000 – Andrew 2011-06-03 10:57:06

+0

主機服務器上是否存在文件大小限制,並且存在足夠的空間? – 2011-06-03 11:30:35

+0

你的意思是我上傳文件的主機?沒有限制,並有一個新的空賬戶 – Andrew 2011-06-03 11:38:47

1

這是一個常見的問題,因爲PHP贏得」接受內上傳大文件($_FILES

您可以更改的行爲在php.ini:

ini_set('max_input_time',''); 
ini_set('upload_max_filesize', ''); 
ini_set('post_max_size', ''); 
+0

嗨,感謝你的回覆,看起來你只有2秒慢:) – Andrew 2011-06-03 10:58:00

0

我認爲已提供的答案可能會解決我的問題有我訪問php.ini,不幸的是,我不知道,從我今天的研究看來,我的問題是與網絡主機文件的限制。

所以要解決我的問題,我選擇了不同的角度來攻擊它從中攻擊它。我創建了一個表單,可以直接登錄到ftphost的基於Web的界面,一個net2ftp安裝。它不是我想要的解決方案,但除了更換虛擬主機,它似乎是唯一可行的解​​決方案。 我再次感謝這裏的知識淵博的人士提供的信息。