-F 选项
-F/--form <name=content>
该选项适用于 HTTP 协议。它使 curl 模拟一个填写表单并按下提交按钮的动作。这样 curl 会根据 RFC2388 协议使用 “Content-Type " ,所以改选项支持上传二进制文件。为了强制 content 部分必须是一个文件,我们需要在其前面添加一个 @ 符号来标识。
比如下面这条命令可以将 baby2.gif 这个文件传向服务器,服务器端则是使用 upload.php 来处理:
一般情况下,服务器端的 upload.php 可能会使用 数组来接收传送过来的文件信息,上面的 curl 命令中的 myfile 为 $_FILES 数组的第一维的名称,这里是要一致且不能写错的,否则上传失败。
下面是 upload.php 所使用的示例代码:
[PHP] 纯文本查看 复制代码 <?php
$upload_dir = "./p_w_upload/";
$upload_file = $upload_dir . iconv("UTF-8", "Gb2312", $_FILES["myfile"]["name"]);
if (move_uploaded_file($_FILES["myfile"]["tmp_name"], $upload_file)) {
echo "<strong>upload ok</strong><hr>";
echo "filename:" . $_FILES["myfile"]["name"] . "<br>";
echo "tmp filename:" . $_FILES["myfile"]["tmp_name"]."<br>";
echo "file size:" . $_FILES["myfile"]["size"] . "<br>";
echo "file type:" . $_FILES["myfile"]["type"] . "<br>";
echo "<p><a href='javascript:history.back()'>go on your upload</a></p>";
} else {
echo "upload failed"."<bur>";
echo "<a href='javascript:history.back()'>reupload</a>";
}
?>
|