首页 > 解决方案 > 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>

标签: phpftp

解决方案


您的参数ftp_put顺序错误。此外,当您上传二进制文件时,您需要使用FTP_BINARY模式(默认模式)。您不能强制使用文本/ASCII 模式。

代码应该是:

ftp_put($connId, $filename, $tmp)

推荐阅读