我正在编写一个允许用户拍照的应用程序,该照片会自动发送到HTTP服务器,并通过HTTP POST multipart / form-data进行分类。为了构建和发送这些请求,我正在使用Apache的HTTPClient库。我已经对Imgur API端点之一和正确上传的图像进行了测试,因此我对自己的Java客户端代码能够工作充满信心。因此,我认为服务器上的端点很可能有错误。我将请求发送到服务器,以编写该文件的PHP脚本接收该请求,并将其保存到服务器上的目录中,然后将响应适当地发送回客户端。当我对此进行测试时,即使脚本显然无法正常工作,服务器也会始终返回状态码为200的响应。我尝试将响应状态代码手动设置为500以强制输入错误代码,即使这样也不起作用,这使我认为当请求到达端点时,整个脚本甚至无法运行(如果它甚至到达了端点) )。我希望这要么是服务器配置错误,要么是脚本本身错误。但是,为了方便起见,我粘贴了Java代码。您可能在那里也发现了一些错误。我对网络或PHP都不满意,所以我绝对可以用一些经验丰富的眼睛。
我的服务器代码:
<?php
$path = '/home/user01/Documents/uploaded_images/';
$ext = '.jpg';
function getFileName() {
return 'image_'.date('Y-m-d_His');
}
//Receive the data from android client
$file = $_FILES['uploadedFile'];
//process the data
$filename = $path . getFileName() . '_' . $_SERVER['REMOTE_ADDR'] . $ext;
if (!is_uploaded_file($file['tmp_name']) ||
!copy($file['tmp_name'], $filename))
{
$message = 'Could not save file as' . $filename;
$error = True;
}
else {
$message = "Image uploaded successfully!";
$error = False;
}
//return response to the server
if ($error) {
http_response_code(500);
}
echo json_encode(
array(
'status' => 'Repsonse Code :' . http_response_code(),
'message' => $message
), JSON_FORCE_OBJECT);
?>
答案 0 :(得分:0)
更新和解决方案:
在一些帖子评论者的帮助下进行了故障排除之后,我首先尝试编写一个简单的HTML表单以将POST请求本地提交到PHP脚本,然后在这些请求失败后,我添加了 module.exports {
...
chainWebpack: config => {
config.plugin('define').tap(definitions => {
definitions[0] = Object.assign(definitions[0], {
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery',
_: 'lodash'
})
return definitions
})
}
...
}
在代码开头执行功能,但仍然没有任何反应。这可以让我找出错误所在。
我遇到的问题是由错误的服务器配置引起的。这导致PHP无法被识别为已安装的语言。因此,该脚本根本没有被执行。固定配置后,脚本将完全按预期工作。
评论者的见解广受赞誉。