php实现文件传输
PHP 实现文件传输的方法
使用表单上传文件
在 HTML 表单中设置 enctype="multipart/form-data" 属性,允许文件上传。PHP 通过 $_FILES 超全局变量接收上传的文件。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload">
<input type="submit" value="Upload File">
</form>
PHP 脚本 (upload.php) 处理上传文件:

$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["fileToUpload"]["name"]);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
echo "The file " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
使用 FTP 传输文件
PHP 内置 FTP 函数库,可以用于文件传输。需要确保服务器支持 FTP 扩展。

$ftpServer = "ftp.example.com";
$ftpUser = "username";
$ftpPass = "password";
$localFile = "localfile.txt";
$remoteFile = "remotefile.txt";
$connId = ftp_connect($ftpServer);
$loginResult = ftp_login($connId, $ftpUser, $ftpPass);
if (ftp_put($connId, $remoteFile, $localFile, FTP_BINARY)) {
echo "Successfully uploaded $localFile";
} else {
echo "Error uploading $localFile";
}
ftp_close($connId);
使用 cURL 传输文件
cURL 是一个强大的库,支持多种协议,包括 HTTP、FTP 等。
$file = fopen("localfile.txt", "r");
$url = "http://example.com/upload.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $file);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize("localfile.txt"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
fclose($file);
echo $response;
使用 SSH/SFTP 传输文件
需要安装 SSH2 扩展,适用于安全文件传输。
$connection = ssh2_connect('example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$localFile = 'localfile.txt';
$remoteFile = 'remotefile.txt';
ssh2_scp_send($connection, $localFile, $remoteFile, 0644);
ssh2_disconnect($connection);
echo "File transferred successfully.";
注意事项
- 文件上传时需设置合适的权限 (
chmod) 确保目标目录可写。 - 验证文件类型和大小,防止恶意文件上传。
- 使用 HTTPS 或 SFTP 等加密协议传输敏感文件。
- 大文件上传可能需要调整 PHP 配置 (
upload_max_filesize,post_max_size)。
以上方法可根据具体需求选择,表单上传适用于网页应用,FTP/cURL 适用于脚本自动化,SSH/SFTP 适用于安全传输。






