PHP文件上传(通过命令行上的Curl)

前端之家收集整理的这篇文章主要介绍了PHP文件上传(通过命令行上的Curl)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用 PHP文件上传到我的服务器的噩梦,但是当使用这个简单的HTML表单时,它似乎工作:
<html><body>
<form enctype="multipart/form-data" action="uploads.PHP" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

那么PHP就是:

<?PHP
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$target_path)) {
echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
" has been uploaded";
} else{
echo "There was an error uploading the file,please try again!";
}
?>

是否有任何可能的方法通过命令行或shell脚本使用curl通过此技术发送文件?也就是说:

curl -f "@/path/to/my/file;type=text/html" http://mywebserver.com/uploads.PHP

那个特定的行给了我:“卷曲:(22)连接到:: 1失败:权限被拒绝”虽然网站上没有密码等我认为这是可能的,但我的语法错了?

我认为你希望这个论点是大写字母F(对于Form).小写f用于失败,并返回错误代码22.严重的是,它在手册中!

-f,–fail

(HTTP) Fail silently (no output at all) on server errors. This is
mostly done to better enable scripts etc to better deal with Failed
attempts. In normal cases when an HTTP server fails to deliver a
document,it returns an HTML document stating so (which often also
describes why and more). This flag will prevent curl from outputting
that and return error 22.

This method is not fail-safe and there are occasions where
non-successful response codes will slip through,especially when
authentication is involved (response codes 401 and 407).

-F,–form

(HTTP) This lets curl emulate a filled-in form in which a user has
pressed the submit button. This causes curl to POST data using the
Content-Type multipart/form-data according to RFC 2388. This enables
uploading of binary files etc. To force the ‘content’ part to be a
file,prefix the file name with an @ sign. To just get the content
part from a file,prefix the file name with the symbol <. The
difference between @ and < is then that @ makes a file get attached in
the post as a file upload,while the < makes a text field and just get
the contents for that text field from a file.

此外,您还没有命名您的文件变量.我想你想要:

curl -F "uploadedfile=@/path/to/my/file" http://mywebserver.com/uploads.PHP
原文链接:https://www.f2er.com/php/130294.html

猜你在找的PHP相关文章