2016-08-27 7 views
0

ファイルをローカルマシンドライブからサーバーにアップロードしようとしています。サイズがゼロのFTPアップロードファイル

ファイルを次のコードでアップロードしましたが、ファイルサイズが0バイトまたは空白のファイルがアップロードされました。

また、ローカルファイルのファイルパスをすべて取得しませんでした。サーバーのパスが表示されます。たとえば、ローカルファイルがD:/abc/abc.txtの場合、/public_html/abc.txtが表示されます。

助けてください。

<?php 
echo "hi"; 
echo "\n"; 

$host = '000.000.00.000'; 
$usr = 'userName'; 
$pwd = 'password'; 

$temp = $_FILES["file"]; 
$local_file = realpath($_FILES["file"]["name"]["r"]); 

$ftp_path = "/public_html/Download/".$_POST['file']; 

echo "This is file to Upload :"; 
echo "\n"; 

print($local_file); 

// connect to FTP server (port 21) 
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host"); 

// send access parameters 
ftp_login($conn_id, $usr, $pwd) or die("Cannot login"); 

// perform file upload 
print ("This is ftp path : "); 
print($ftp_path); 
print("New line : "); 

$upload = ftp_put($conn_id, $ftp_path, $local_file , FTP_ASCII , 0); 

print (!$upload) ? 'Cannot upload' : 'Upload complete'; 
print ("\n") ; 

ftp_close($conn_id); 
?> 

答えて

2

$_FILES['file']['name']は、サーバーではなくクライアントマシン上のファイルの名前です。アップロードはサーバー上の$_FILES['file']['tmp_name']に入れられます。したがって、これはFTPで送信する必要があります。

$ftp_pathを設定すると、$_FILES['file']['name']を使用すると、コピー先のファイルの名前が元のファイルの名前と同じになります。 $_POST['file']は存在しません - ファイルのアップロードは$_FILESにのみ行われ、$_POSTには入力されません。

+0

私はまたその結果を同じものにしようとします:-(( – Yogesh

+0

) '$ ftp_path'で問題を追加しました – Barmar

+0

Barmar i次の行に代わりに使用しますが、アップロード中にエラーが表示されます.. plz help * * $ local_file = realpath($ _ FILES ["file"] ["tmp_name"]); ** ** $ ftp_path = "/public_html/Download/".$_FILES['file']["name"];** – Yogesh

関連する問題