php - PHP ftp_put 不上传文件
问题描述
我创建了一个上传器,它通过 PHP 中的 FTP 将文件发送到主机。我的文件是一张照片。它不仅将照片成功发送给主机。我的代码:
<?php
$name = $_FILES['cover']['name'];
$type = $_FILES['cover']['type'];
$size = $_FILES['cover']['size'];
$tmp = $_FILES['cover']['tmp_name'];
$image_properties = getimagesize($_FILES['cover']['tmp_name']);
$ftpHost = '*****';
$ftpUsername = '*****';
$ftpPassword = '*****';
$connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost");
$ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword);
$filename=md5($name.microtime()).substr($name,-4,4);
$namesql="************.com/7d97481b1fe66f4b51db90da7e794d9f/".$filename;
if(ftp_put($connId, $tmp, $filename, FTP_ASCII)) {
echo "File transfer successful - $name";
echo "<img src='$namesql' alt='melipic' width='240px'>";
}else{
echo "There was an error while uploading $name";
}
ftp_close($connId);
?>
<form role="form" action="" method="post" enctype="multipart/form-data">
<div class="form-group">
<label style="float:right;" for="exampleInputEmail1">cover profile</label>
<input name="cover" type="file" class="form-control" id="exampleInputEmail1">
</div>
<button name="btn" type="submit" class="btn btn-shadow btn-success">submit</button>
</form>
解决方案
您的参数ftp_put
顺序错误。此外,当您上传二进制文件时,您需要使用FTP_BINARY
模式(默认模式)。您不能强制使用文本/ASCII 模式。
代码应该是:
ftp_put($connId, $filename, $tmp)
推荐阅读
- mysql - 如何使用 ST_Distance_Sphere 从 MySQL 中仅获取一列
- ssl - 在 Python 请求中使用 HTTPS 代理的问题
- amazon-web-services - 如何将特定字段从 EventBridge 输入发送到其目标
- python - 使用 django-channels 而不是不使用它的好处
- reactjs - 反应:在componentDidUpdate中有条件的setState不起作用
- html - Outlook 7 在同一行对齐图像和文本
- django - 如何将电话号码字段添加到 django UserCreationForm?
- python - Python(3.7.4),请求:for循环仅获取最后一项
- node.js - 节点 npm create-react-app 工作文件“react-app”未创建。发生错误
- c# - 如何在asp.net核心中长时间查询数据库与拍摄时间