使用 PHP 将文件上传到 FTP 而文件没有损坏
Upload a file to FTP using PHP without the file being damaged
我正在尝试使用 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");
将 FTP_ASCII
更改为 FTP_BINARY
。
解释:
FTP_ASCII
用于纯文本文件。
FTP_BINARY
适用于任何文件类型,包括纯文本文件。例如。 JPEG 文件本质上是二进制文件。
在幕后,FTP_ASCII
任何遇到空字符(序号 0)都会导致二进制文件的结果丢失。我觉得。
无论如何 FTP_BINARY
应该可以解决您的问题。
我正在尝试使用 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");
将 FTP_ASCII
更改为 FTP_BINARY
。
解释:
FTP_ASCII
用于纯文本文件。
FTP_BINARY
适用于任何文件类型,包括纯文本文件。例如。 JPEG 文件本质上是二进制文件。
在幕后,FTP_ASCII
任何遇到空字符(序号 0)都会导致二进制文件的结果丢失。我觉得。
无论如何 FTP_BINARY
应该可以解决您的问题。