加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 08:33:25 所属栏目:PHP 来源:互联网
导读:我有一个使用 PHP将文件上传到我的服务器的噩梦,但是当使用这个简单的HTML表单时,它似乎工作: htmlbodyform enctype=multipart/form-data action=uploads.php method=POSTinput type=hidden name=MAX_FILE_SIZE value=100000 /Choos

我有一个使用 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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读