两个php怎么传文件
时间 : 2023-04-01 02:05:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在 PHP 中,可以通过文件上传表单来上传文件。在表单中,需要设置 `enctype="multipart/form-data"` 属性,同时使用 `$_FILES` 超全局变量来获取上传的文件信息。

接下来,我们可以使用以下步骤来传输文件:

1. 创建一个 HTML 表单来上传文件:

2. 创建一个 PHP 文件来处理上传的文件:

```php

<?php

$target_dir = "uploads/"; // 存储上传的文件的目录

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上传的文件名

$uploadOk = 1;

$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

// 检查文件是否已存在

if (file_exists($target_file)) {

echo "文件已存在.";

$uploadOk = 0;

}

// 检查文件大小

if ($_FILES["fileToUpload"]["size"] > 500000) {

echo "文件过大.";

$uploadOk = 0;

}

// 允许的文件格式

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"

&& $imageFileType != "gif" ) {

echo "只允许 JPG, JPEG, PNG & GIF 文件.";

$uploadOk = 0;

}

// 如果 $uploadOk 为 0 ,文件上传失败

if ($uploadOk == 0) {

echo "文件上传失败.";

// 如果 $uploadOk 为 1 ,文件上传成功

} else {

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {

echo "文件 " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " 上传成功.";

} else {

echo "文件上传失败.";

}

}

?>

在上述代码中,我们首先检查文件是否已存在,文件大小是否符合要求以及文件格式是否合法。如果这些条件都通过了,我们就将文件移动到指定目录中。如果文件上传失败,我们则输出错误信息。

通过以上步骤,我们可以成功地在两个 PHP 文件之间传输文件。

PHP提供了不同的方法和函数来实现在两个PHP文件之间传递文件。下面是两种常用的方法:

1. 使用HTTP POST方法传送文件

使用HTTP POST方法可以在PHP脚本之间传送文件,这种方法适合传递较小的文件。以下是代码示例:

文件接收方代码:

```php

if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) { // 判断是否有文件上传错误

$temp_name = $_FILES["file"]["tmp_name"]; // 获取文件的临时存储路径

$name = $_FILES["file"]["name"]; // 获取文件名

move_uploaded_file($temp_name, "uploads/$name"); // 将文件从临时路径移动到指定目录

}

文件发送方代码:

```php

$file_path = "/path/to/file/"; // 需要传输的文件路径

$url = "http://example.com/receive.php"; // 接收方的URL

$post_data = array(

"file" => "@" . $file_path // 设置POST参数为文件路径

);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设置返回结果为字符串形式

$response = curl_exec($ch);

curl_close($ch);

echo $response; // 输出接收方返回的结果(可选)

2. 使用FTP协议传送文件

通过FTP协议可以在PHP脚本之间传递大文件。以下是代码示例:

文件接收方代码:

```php

$ftp_server = "example.com"; // FTP服务器地址

$ftp_username = "username"; // FTP登录用户名

$ftp_password = "password"; // FTP登录密码

$remote_file_path = "/remote/path/to/file"; // 远程文件路径

$local_file_path = "local/path/to/file"; // 本地文件路径

$conn_id = ftp_connect($ftp_server); // 连接FTP服务器

$login_result = ftp_login($conn_id, $ftp_username, $ftp_password); // 登录FTP服务器

ftp_pasv($conn_id, true); // 设置FTP服务器为被动模式

ftp_get($conn_id, $local_file_path, $remote_file_path, FTP_BINARY); // 从FTP服务器下载文件到本地

ftp_close($conn_id); // 关闭FTP连接

文件发送方代码:

```php

$ftp_server = "example.com"; // FTP服务器地址

$ftp_username = "username"; // FTP登录用户名

$ftp_password = "password"; // FTP登录密码

$remote_file_path = "/remote/path/to/file"; // 远程文件路径

$local_file_path = "local/path/to/file"; // 本地文件路径

$conn_id = ftp_connect($ftp_server); // 连接FTP服务器

$login_result = ftp_login($conn_id, $ftp_username, $ftp_password); // 登录FTP服务器

ftp_pasv($conn_id, true); // 设置FTP服务器为被动模式

ftp_put($conn_id, $remote_file_path, $local_file_path, FTP_BINARY); // 将本地文件上传到FTP服务器

ftp_close($conn_id); // 关闭FTP连接

以上就是两种常用的在两个PHP文件之间传送文件的方法。根据你的需求选择适合的方法即可。