需要php代码来存储用wget上传的文件
我需要从命令行上传服务器上的文件。我下一步要做:需要php代码来存储用wget上传的文件,php,bash,http,post,wget,Php,Bash,Http,Post,Wget,我需要从命令行上传服务器上的文件。我下一步要做: wget-d--post file=links.txthttp://bearnova.com/upload_file.php 这里是upload_file.php。下面的代码当然不起作用: <?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Uplo
wget-d--post file=links.txthttp://bearnova.com/upload_file.php
这里是upload_file.php。下面的代码当然不起作用:
<?php
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
?>
Wget执行HTTP POST以发送文件。
我还听说过$\u POST、$HTTP\u RAW\u POST\u DATA和file\u get\u contents(php://input)
我根本不是一个php的家伙。有人能帮我找到一个有效的解决方案吗?
谢谢。请检查是否使用您定义的html格式
<form method="post" action="upload_file.php" enctype="multipart/form-data">
<input type="file" name="file" id="file"/>
</form>
如果它没有定义,那么它也可能不工作。
同样,对于文件字段,需要此enctype格式。
wget
不能用于文件上载。文件上载要求内容类型为multipart/form data
,但wget
不支持此功能。从手册页:
Wget目前不支持传输POST数据的多部分/表单数据”;只有
application/x-www-form-urlencoded'
--post file
只发布普通表单字段,它只从文件内容中获取值
你可以用curl
来做你想做的事情
curl-F file=@links.txthttp://bearnova.com/upload_file.php
我通过以下方式获取文件内容:
<?php $postdata = file_get_contents("php://input"); ?>
$HTTP_RAW_POST_DATA-与上面相同,但取决于php.ini(在我的示例中为空)
我需要将其存储在服务器端的文件中,似乎文件名也没有发送,但这应该不是什么大问题。这就是使用wget的方法
wget -d --post-data="filedata=`base64 links.txt`&filename=links.txt" http://bearnova.com/upload_file.php
您可以从upload_file.php获取文件名和文件数据,并执行任何您想要的操作
<?php
$filename = $_POST['filename'];
$filedata = base64_decode($_POST['filedata']);
?>
wget命令不会将文件发送到服务器。它使用links.txt文件中的数据发送post请求$\u post、$HTTP\u RAW\u post\u数据如何?我可以从其中一个文件中读取文件内容吗?下面发送的链接()很好地解释了如何使用wget发送文件。哪一点你不能理解?我不明白为什么我们需要做base64.encodestring然后解码它。此外,我根本不需要python部分,因为您需要将文件内容转换为字符串,以便wget可以将其作为post变量发送。如果不想使用python,也可以使用bash。我现在正在写答案……他没有HTML表单。他正在使用wget
提交表格。正如巴尔马所说,我没有表格;)谢谢,但我没有卷发。我需要用wget来完成这项工作。文档中说wget不能发送文件附件。你为什么不能安装curl?再说一遍。我在OM2P接入点上,它只有wget和scp。没有curl、ftp、sftp、tftp、wput等,我需要从shell脚本发送日志。那么我猜你运气不好。这个问题已经解决过一次,但我不在服务器端,我不知道解决方法。所以我相信这是可以做到的。这里有一个例子:是的,这很好,除了我在AP上没有base64;)