<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// This part is unrelated to the article content and can contain initialization or comment information</span></span><span>
</span><span><span class="hljs-comment">// Author: Example Author</span></span><span>
</span><span><span class="hljs-comment">// Date: 2025-08-27</span></span><span>
</span><span><span class="hljs-comment">// Description: PHP article example</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<p><hr></p>
<p><h1>Differences and Choices Between ftp_fput and ftp_put: Which One Fits Your Needs Better?</h1></p>
<p><p>When working with FTP files in PHP, you will often encounter <code>ftp_put
As you can see, the main difference lies in the third parameter: ftp_put takes a file path, while ftp_fput takes a file handle.
If the file is large:
</span><span><span>$ftp</span></span><span> = </span><span><span class="function_ invoke__">ftp_connect</span></span><span>(</span><span><span>"ftp.example.com"</span></span><span>);
</span><span><span class="function_ invoke__">ftp_login</span></span><span>(</span><span><span>$ftp</span></span><span>, </span><span><span>"username"</span></span><span>, </span><span><span>"password"</span></span><span>);
<p></span><span><span>$localFile</span></span><span> = </span><span><span>"local.txt"</span></span><span>;<br>
</span><span><span>$remoteFile</span></span><span> = </span><span><span>"remote.txt"</span></span><span>;</p>
<p></span><span><span>if</span></span><span> (</span><span><span class="function_ invoke__">ftp_put</span></span><span>(</span><span><span>$ftp</span></span><span>, </span><span><span>$remoteFile</span></span><span>, </span><span><span>$localFile</span></span><span>, FTP_BINARY)) {<br>
</span><span><span>echo</span></span><span> </span><span><span>"File uploaded successfully!"</span></span><span>;<br>
} </span><span><span>else</span></span><span> {<br>
</span><span><span>echo</span></span><span> </span><span><span>"File upload failed!"</span></span><span>;<br>
}</p>
<p></span><span><span class="function_ invoke__">ftp_close</span></span><span>(</span><span><span>$ftp</span></span><span>);<br>
</span><span><span>$ftp</span></span><span> = </span><span><span class="function_ invoke__">ftp_connect</span></span><span>(</span><span><span>"ftp.example.com"</span></span><span>);
</span><span><span class="function_ invoke__">ftp_login</span></span><span>(</span><span><span>$ftp</span></span><span>, </span><span><span>"username"</span></span><span>, </span><span><span>"password"</span></span><span>);
<p></span><span><span>$localFile</span></span><span> = </span><span><span>"local.txt"</span></span><span>;<br>
</span><span><span>$handle</span></span><span> = </span><span><span class="function_ invoke__">fopen</span></span><span>(</span><span><span>$localFile</span></span><span>, </span><span><span>"r"</span></span><span>);<br>
</span><span><span>$remoteFile</span></span><span> = </span><span><span>"remote.txt"</span></span><span>;</p>
<p></span><span><span>if</span></span><span> (</span><span><span class="function_ invoke__">ftp_fput</span></span><span>(</span><span><span>$ftp</span></span><span>, </span><span><span>$remoteFile</span></span><span>, </span><span><span>$handle</span></span><span>, FTP_BINARY)) {<br>
</span><span><span>echo</span></span><span> </span><span><span>"File uploaded successfully!"</span></span><span>;<br>
} </span><span><span>else</span></span><span> {<br>
</span><span><span>echo</span></span><span> </span><span><span>"File upload failed!"</span></span><span>;<br>
}</p>
<p></span><span><span class="function_ invoke__">fclose</span></span><span>(</span><span><span>$handle</span></span><span>);<br>
</span><span><span class="function_ invoke__">ftp_close</span></span><span>(</span><span><span>$ftp</span></span><span>);<br>
In short:
Understanding the differences and use cases between the two will help you handle FTP upload tasks more efficiently in PHP development.