簡體   English   中英

使用PHP將大文件上傳到FTP

[英]Upload large files to FTP with PHP

我正在嘗試使用php將大文件上傳到ftp服務器。 我可以上傳小文件,但是在上傳大文件時遇到問題。 我查了一下,發現需要設置upload_max_filesize和post_max_size,將ftp設置為被動模式,並將時間限制設置為從不。 我沒有設置時間限制,現在我沒有返回任何錯誤,但是也沒有上傳文件。 如果查看底部的if (!$upload) {行,它應該回顯某些內容,但事實並非如此。 更重要的是,它不起作用。 關於出什么問題或者我需要做些什么來做這項工作的任何見解? 謝謝!

ini_set('upload_max_filesize', '50M');   
ini_set('post_max_size', '50M');  

$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
}

 // turn passive mode on
ftp_pasv($conn_id, true);

if($_FILES['upload_file']['name']!=''){
    $source_file = $_FILES['upload_file']['tmp_name'];
    $destination_file = $_FILES['upload_file']['name']; 

    // upload the file
    $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

    // check upload status
    if (!$upload) {
            echo "FTP upload has failed!<br />";
        } else {
            echo "Uploaded $source_file to $ftp_server as $destination_file<br />";
        }       
}

UPDATE

我發現我無法從php頁面設置upload_max_filesize值; 另外,我似乎無法使.htaccess正常工作:如果我有.htaccess文件,它將導致HTTP錯誤500。而且,我無權訪問php.ini。

我還能如何更改upload_max_filesize值?

更多信息

我的網絡管理員告訴我,我在基於IIS Windows的系統上,所以.htaccess文件不起作用。 有沒有一種方法可以影響web.config的文件上傳大小?

從此站點: http : //www.php.net/manual/zh/ini.php

'upload_max_filesize'和'post_max_size'

屬於PHP_INI_PERDIR類型

這意味着可以在“ php.ini,.htaccess或httpd.conf”中設置條目。 因此,您無法在腳本中進行設置。

-編輯-

一個類似的問題: 在PHP上更改upload_max_filesize

-編輯2-

就個人而言,我想做同樣的事情(通過ftp上傳大文件)並最終編寫一個Java應用程序。 對於處理大文件,php並不是真正的最佳方法。 Web瀏覽器並非如此。 因此,對於處理大文件,我建議考慮其他方法:(java,swf,javascript,...)

有空的時候我想嘗試一下的東西是http://nodejs.org/

正如@AngeDeLaMort正確指出的那樣,您不能使用速記符號在PHP.ini之外設置配置值。

參考: 在PHP上更改upload_max_filesize

嘗試這樣做。

在您的根目錄中創建.htaccess文件,並添加以下內容。

php_value upload_max_filesize 50M
php_value post_max_size 50M
php_value max_execution_time 200
php_value max_input_time 200

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM