我已经成功地将文件从 Android 上传到我的服务器。我按照本教程进行操作,没有问题。现在我还需要发送一个字符串以及上传后将添加到文件名中的文件。例如:
上传我的文件 - myFile.mp3
上传我的字符串 = "|myString"
该文件需要以“myFile.mp3|myString”的形式存储在我的服务器上。
任何帮助将不胜感激。我只是不太确定在哪里放置要上传的字符串以及如何在 PHP 代码中检索它。
我不相信这是可能的;您只能在标题、文件或基本文本中拥有一种内容类型(或一堆其他东西,但您正在谈论的有两种)。但是,您可以发布两篇单独的帖子,或者发布一篇包含文件字节和字符串的帖子(参数帖子,应用程序 www-x-form-urlencoded)
尝试使用multipart/form-data POST 请求上传,您可以在标头中包含其他数据。
检查这篇文章:Android发送图像并保存网址
如果绝对无法避免,可以将字符串放在请求头中
在环顾四周并尝试不同的东西之后,它终于奏效了。我将此添加到我的 java 代码中:
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"mystring\"" + lineEnd + lineEnd);
dos.writeBytes("myString" + lineEnd);
这是我的PHP代码来获取字符串:
$myString="";
if(isset($_POST['mystring'])) {
$attachToFile = $_POST['myString'];
}