我正在尝试使用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
都可以解决您的问题。