[使用PHP将文件上传到FTP而不损坏文件

问题描述 投票:0回答:1

我正在尝试使用php将文件上传到我的ftp服务器。

如果使用此文件,则文件加载有效,但文件已损坏。我是php的初学者,我希望尽快解决此问题,感谢您提供的最小帮助,感谢您的关注。

这是我用来加载文件的形式,它是一个简单的html。

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>
<?php
    if(isset($_POST["submit"])) {
        $ftp_server = "yourHosting.com";

        $conn_id = ftp_connect($ftp_server) or die("error $ftp_server"); 

        $file = $_FILES['fileToUpload']['name'];

        if (ftp_login($conn_id, 'userHere', 'passwordHere')) {
            echo "<br>Session started.";
            ftp_pasv($conn_id, true);
            ftp_put($conn_id, '../myhosting.com/wp-content/uploads/2019/10/'.$file, $_FILES['fileToUpload']['tmp_name'], FTP_ASCII) or die("Image not uploaded");
        } else {
            echo "<br>Session not started.";
        }

        ftp_close($conn_id);
    }
?>

如果将名称tmp_name更改为该文件未加载的名称,我不知道会做错什么。

ftp_put($conn_id, '../myhosting.com/wp-content/uploads/2019/10/'.$file, $_FILES['fileToUpload']['name'], FTP_ASCII) or die("Image not uploaded");
php ftp
1个回答
0
投票

FTP_ASCII更改为FTP_BINARY

说明:

FTP_ASCII对于纯文本文件。FTP_BINARY适用于任何文件类型,包括纯文本文件。例如。 JPEG文件本质上是二进制的。

在幕后,如果遇到FTP_ASCII,则任何遇到空字符(序号0)的操作都会使您在二进制文件上获得结果。我认为。

无论如何,FTP_BINARY都可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.