如何使用curl将文件发送到服务器?

时间:2014-11-19 16:20:46

标签: apache curl

首先,我知道草皮的方根都是关于卷曲的,而我并没有想要学习它。我告诉它可以帮助我在一些C代码中追踪问题,我试图将数据写入Apache服务器。我可能会在这里完全错误地咆哮

我想要做的是从我的笔记本电脑到运行HTTP服务器的桌面进行HTTP POST,所以希望使用Wireshark确切了解原始HTTP的样子。然后我可以回到我的嵌入式主板上的C代码,更好地了解如何使其工作。

我尝试过以下命令:

curl -X POST -d @test.txt 192.168.0.106/incoming

text.txt只包含" Hello World"用纯文本(用vim创建)。 .106是Apache服务器...它使用GET命令很好地提供文件。

但是这给了:

Warning: Couldn't read data from file "test.txt", this makes an empty POST.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://192.168.0.106/incoming/">here</a>.</p>
</body></html>

非常感谢!

1 个答案:

答案 0 :(得分:0)

我的理解:

您希望将笔记本电脑中的一些数据发送到Apache服务器,并将内容保存在incoming文件夹中。

如何做到这一点:

为此,您需要接收从Curl发送的数据。我建议你在传入的文件夹中创建一个index.php。根据您使用的curl命令,您可以在index.php中找到类似的内容。

<强> index.php

<?PHP
 move_uploaded_file($_FILES['content']['tmp_name'], "test.txt");
?>

如果您打算使用:

curl --form "content=@test.txt" http://192.168.0.106/incoming/

否则,请执行以下操作:

<强> index.php

<?PHP
file_put_contents("test2.txt", $_POST['content']);
?>

curl --data-urlencode "content@test.txt" http://192.168.0.106/incoming/