1

このコード

$user = 'user';
$pass = 'password';
$filename = 'text.txt';
error_reporting(E_ALL);
ini_set('display_errors', 1);
$ch = curl_init();
$localfile = 'text.txt';
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'sftp://$user:$pass@myserver.com/upload/$filename');
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0) {
        $error = 'File uploaded succesfully.';
} else {
        $error = 'File upload error.';
}
echo $error.' '.$error_no;

このエラーが表示されます:

ファイルのアップロード エラー。7 (ファイルをディスクに書き込めませんでした)

私の要件は単純です。curltext.txtを使用してライブ サーバーにファイルをアップロードするだけです。

4

4 に答える 4

1

この質問への回答は、今日私を助けてくれました。

'sftp://$user:$pass@myserver.com/upload/$filename'一重引用符を使用しているため、変数が解釈されないことを指摘したいだけです。二重引用符を使用するか、変数を単一引用符で囲まれた文字列に連結する必要があります。

于 2015-03-12T16:36:59.837 に答える