如何将图像从 App Inventor 发送到使用 FormDataParam 的 java 网络服务

How to send image from App Inventor to a java web service that uses FormDataParam

我创建了一个 java 网络服务,可以将图像上传到文件夹。它在 html 形式下工作正常,but when i tried to send the image from app inventor using PostFile

我收到错误 1104,据我所知,这意味着 url 或互联网连接有问题。我知道这不是我的互联网连接,所以它必须是 url。我还注意到在网络服务中 the upload function requires a specific parameter

包含图像,我不知道这是否是导致问题的原因或如何在 App Inventor 中指定图像属于 html form 上的那个参数。

很遗憾,App Inventor 的 Web 组件无法理解 multipart/formdata

您可以使用 PostFile 方法将文件上传到您的网络服务器 see this example, alternatively use the ftp extension

根据Taifun的建议,这是我的解决方案。我只是将我的图像从 App Inventor 发送到我在 http 服务器上 运行 的 php 文件,然后从 php 我将图像发送到 java Web 服务使用curl,指定参数名称,使用file_get_contents('php://input')函数获取从接收到的图像App Inventor.

$upload_url = 'http://192.168.1.77:8081/ImageProcessing/api/file/upload';
$params = array(
 'photo'=>file_get_contents('php://input')
);  

$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $upload_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($ch);

echo $response;
curl_close($ch);