我想将一个基本的.txt文件从一台服务器传输到另一台服务器。
我陷入了如何处理目标服务器上的文件的问题。
这是我将文本文件发送到远程服务器的代码:
// Create a cURL handle
$ch = curl_init();
// Create a CURLFile object
$cfile = new CURLFile('testfile.txt','text/plain');
// Assign POST data
$data = array("test_file" =>$cfile);
curl_setopt($ch, CURLOPT_URL,'https://example.com/upload.php');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// Execute the handle
curl_exec($ch);
//close curl
curl_close ($ch);
这似乎有效,我的upload.php
文件(带print_r
)的输出如下:
[0] => Array
(
[name] => testfile.txt
[type] => text/plain
[tmp_name] => /tmp/phpGO8IhB
[error] => 0
[size] => 136
)
不幸的是,我无法让它工作,testfile.txt落在远程服务器上。
这是我的最后一次尝试,也没有成功:
if(isset($_FILES['test_file'])){
move_uploaded_file($_FILES['testfile.txt']['test_file'], "uploads/");
}else{
echo "error";
}
我唯一知道的是,该文件似乎已到达服务器,但我做错了。我需要做什么?
答案 0 :(得分:2)
您的move_uploaded_file()
电话应该是:
move_uploaded_file($_FILES['test_file']['tmp_name'], "uploads/yourfile.txt");
您的文件密钥为test_file
,并且您尝试访问test_file.txt
作为密钥。
您需要tmp_name
元素而不是test_file
。
您需要提供目标文件的文件名,而不是uploads/
这是一个目录。您可以使用动态$_FILES['test_file']['name']
,但必须对其进行验证。