Php 在FTP服务器中直接上传/放置文件,而用户将以网页形式上传

Php 在FTP服务器中直接上传/放置文件,而用户将以网页形式上传,php,jquery,html,forms,ftp,Php,Jquery,Html,Forms,Ftp,我想知道,用户是否有可能在网页表单控件中上载任何文件(JPG、JPEG、PDF、Zip等),该控件将直接上载/放在FTP服务器上,而无需先在网站服务器中存储临时文件,然后再在FTP服务器中传输 事实上,我有一个商业案例,用户可以上传超过200 MB的文件,所以在这里我想直接传输到远程FTP服务器,而不存储在网站服务器 此外,我还研究了html表单标记允许FTP协议生效属性,下面是我尝试过的代码片段 <form action="ftp://username:password@domainna

我想知道,用户是否有可能在网页表单控件中上载任何文件(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>

上载文件:
但当我试图上传图像并提交它时,它会将我重定向到浏览器中的url,这将显示我在upload.PHP文件中编写的PHP代码

实际上,我已经知道,一旦表单提交并从服务器临时位置传输文件($\u FILES['uploadedfile']['tmp\u name']),如何在远程FTP服务器中传输文件到FTP服务器,但这样做将需要双倍的时间,因为首先文件上传到网站服务器,然后进一步传输到远程FTP服务器

您也可以向我建议实现业务需求的替代方法

提前感谢。

您可以使用ftp\u put()

以下是.php文件的开头:

<?PHP
   $myFile = $_FILES['file_name']; // This will make an array out of the file information that was stored.
?>
//这将创建一个完整的路径,文件的末尾供您使用,比如拆分变量,以防需要单独使用,或者动态创建新文件夹

$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";
    }
?>
您可以使用ftp_put()

以下是.php文件的开头:

<?PHP
   $myFile = $_FILES['file_name']; // This will make an array out of the file information that was stored.
?>
//这将创建一个完整的路径,文件的末尾供您使用,比如拆分变量,以防需要单独使用,或者动态创建新文件夹

$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";
    }
?>

谢谢你的反馈。但实际上我想在不存储在网站服务器的情况下传输文件。在您提到的代码中,首先用户上传的文件存储在服务器的/tmp位置下的服务器中,然后它进一步传输到远程ftpy。您可以使用PHP PUT方法。PHP支持一些客户端用于在服务器上存储文件的HTTP PUT方法。你好,桑托什,感谢您的回复,因为您的回复为我提供了实现我的需求的其他方式。但在这里,我不确定如何使用HTTP put方法意味着假设在我的表单中有这么多控件和文件控件,那么如何仅从所有表单元素中提取文件控件?@SantoshJagtap从问题的角度来看,
POST
put
之间没有区别。在这两种情况下,文件都会首先上载到web服务器。而且实现
PUT
POST
更困难(这是由HTML本机支持的)。感谢您的反馈。但实际上我想在不存储在网站服务器的情况下传输文件。在您提到的代码中,首先用户上传的文件存储在服务器的/tmp位置下的服务器中,然后它进一步传输到远程ftpy。您可以使用PHP PUT方法。PHP支持一些客户端用于在服务器上存储文件的HTTP PUT方法。你好,桑托什,感谢您的回复,因为您的回复为我提供了实现我的需求的其他方式。但在这里,我不确定如何使用HTTP put方法意味着假设在我的表单中有这么多控件和文件控件,那么如何仅从所有表单元素中提取文件控件?@SantoshJagtap从问题的角度来看,
POST
put
之间没有区别。在这两种情况下,文件都会首先上载到web服务器。而且实现
PUT
POST
更困难(后者本机由HTML支持)。