如何使用ftp上传base64_decode($ data)?

时间:2016-04-05 14:58:38

标签: php ftp type-conversion

我试图将mp3文件上传到我的ftp服务器:

$data = substr($_POST['data'], strpos($_POST['data'], ",") + 1);
$decodedData = base64_decode($data);
$filename = urldecode($_POST['fname']);

$cid = ftp_connect("foo.com");
$result = ftp_login($cid, "rodrigo@foo.com","password");

if ((!$cid) || (!$result)) {
    echo "connection failed"; die;
} else {
    echo "connected";
}

ftp_pasv ($cid, true);
ftp_chdir($cid, "my_folder");

if (ftp_put($cid, $filename, $decodedData, FTP_BINARY)) {
    //...
} else {
    //...
}

我有这个警告:

Warning:  ftp_put(���) [function.ftp-put]: failed to open stream: Invalid argument in...

我无法找到如何发送有效参数

1 个答案:

答案 0 :(得分:0)

您需要创建一个可以传递的文件,下面的示例将文件写入内存而不是磁盘上的文件...但您可能希望根据大小将其写入磁盘。

$tmp = fopen('php://memory', 'r+');
fputs($tmp, $decodedData);
rewind($tmp);

if (ftp_fput($cid, $filename, $tmp, FTP_BINARY)) {

}