簡體   English   中英

直接在FTP服務器中上載/放入文件,而用戶將以網頁形式上載

[英]Upload/Put file Directly in FTP server while user will upload in webpage form

我想知道用戶是否有可能在網頁表單控件中上傳任何文件(JPG,JPEG,PDF,Zip等),而該文件將直接上傳/放置到FTP服務器上而無需在其中存儲第一個臨時文件網站服務器然后在FTP服務器上傳輸?

實際上,我有一個業務案例,用戶可以上傳超過200 MB的文件,因此在這里我想直接將其傳輸到遠程FTP服務器中而不將其存儲在網站服務器中。

我進一步調查了html表單標簽允許“操作”屬性中的FTP協議,下面是我嘗試過的代碼片段。

<form action="ftp://username:password@domainname/upload.php" enctype="multipart/form-data" method="post">
    <table style="border-collapse: collapse;" border="1" width="500px">
        <tbody><tr>
            <td> Upload File :</td>
            <td> <input name="uploadedfile" type="file"> </td>
        </tr>
        <tr>
            <td colspan="2">
             <input name="Save File" value="Save File on Server" type="submit">
            </td>
        </tr>     
    </tbody></table>
</form>

但是,當我嘗試上傳圖像並提交圖像時,它會將我重定向到瀏覽器中的ftp:// username:password@domainname/upload.php URL中,這將顯示我在upload.php中編寫的PHP代碼文件。

實際上,我已經知道,一旦表單提交並將文件從服務器臨時位置($ _FILES ['uploadedfile'] ['tmp_name'])傳輸到FTP服務器,如何在遠程FTP服務器中傳輸文件,但是通過這樣做,它將首先將文件上傳到網站服務器,然后再在遠程FTP服務器中進行傳輸,這需要兩倍的時間。

您也可以向我建議實現我的業務需求的另一種方法。

提前致謝。

您可以使用ftp_put()。 http://php.net/manual/en/function.ftp-put.php

.php文件的開頭如下所示:

<?PHP
   $myFile = $_FILES['file_name']; // This will make an array out of the file information that was stored.
?>

現在,當涉及到傳輸信息時...

<?PHP
        $destination_path = "src/bin/"; 

//要將文件扔到Web服務器上的位置(相對於登錄目錄)

$destination_file = $destination_path."img.jpg";

//這將創建一個完整的路徑,最后帶有文件供您使用,例如像這樣拆分變量,以防萬一我需要單獨使用或動態創建新文件夾。

$file = $myFile['tmp_name'];

//將數組轉換為包含文件所在服務器上路徑名的新字符串。

    $upload = ftp_put($conn_id, $destination_file, $file, FTP_BINARY);// upload the file
    if (!$upload) {// check upload status
        echo "FTP upload of $destination_file has failed!";
    } else {
        echo "Uploaded $file to $conn_id as $destination_file";
    }
?>

暫無
暫無

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

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