这是一个概念验证的实验。我创建了一个VPS,我有一个简单的上传表单和PHP表单处理器脚本。关键是测试我们正在开发的iOS和Android应用程序。这个问题不是关于安全性或效率(仅)功能。我需要修改下面的PHP,以便在没有HTML FORM的帮助下使用POST接收图像。我们目前正在向Dropbox和Google Drive发帖,没问题。我们现在正在研究将图像存储在我们自己的服务器上需要做些什么,我们只需要制定一个概念验证来接收使用POST提交的PHP图像。
随着这个;我想通过唯一的上传方法从移动设备向服务器发送图像,而无需额外的库 - HTTP。使用FTP或SSH需要额外的代码,我们试图保持轻量级。所以我打算用HTTP POST发送一个图像,我现在正在用一个HTML FORM。但是,我需要制定一个只发送图像的POST - 没有其他变量。这是我目前的HTML表单:
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
这是我的处理器PHP:
<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Potential error.\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
在浏览器上完美运行,没问题。现在我需要修改PHP部分以允许POST over URL - 基本上不使用HTML表单。通过使用我发送的文件的名称区分上传的文件或者我可以从我的应用程序提供该变量将是很好的。任何指导都将不胜感激。
参考:http://php.net/manual/en/features.file-upload.post-method.php
答案 0 :(得分:1)
您无需修改PHP。只需从您的iOS / Android应用程序发送文件,就好像它是由表单发送的,即使用multipart/form-data
编码。
或者,如果您想以另一种方式发送,请说明您希望它发送的确切方式,没有其他标准方法可以发送文件“POST over URL”。