在我的android项目中,我上传了带有图片类别的图片。有什么方法可以与我的上传文件一起发送类别字符串?
这是我的上传代码,我该如何发送类别字符串:
FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upLoadServerUri);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE", "multipart/form-data");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
conn.setRequestProperty("uploaded_file", fileName);
dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name="uploaded_file";filename=""
+ fileName + """ + lineEnd);
dos.writeBytes(lineEnd);
答案 0 :(得分:0)
解决该问题的一种方法是,发送一个以“ imageContent”和“ imageCategory”为属性的JSON对象字符串,在Android客户端上将图像内容编码为base64字符串,然后在后端将其解码为正常状态。
Bitmap currentPhotoBitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
currentPhotoBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] currentPhotoBitmapAsByteArray = baos.toByteArray();
base64Image = Base64.encodeToString(currentPhotoBitmapAsByteArray, Base64.DEFAULT);
如果您想这样做,则应更改标题以匹配文本要求。
答案 1 :(得分:0)
这更多是一个常见问题“如何在HTTP请求中包含信息”。 一种选择是将其添加为HTTP标头。
在您的示例中,通过添加以下内容即可实现:
conn.setRequestProperty("X-Image-Category", someCategory);
这里没有涉及的是,服务器还需要读取此标头并使用类别进行某些操作。