我无法弄清楚如何使用multipart / form-data发送带有图像的JSON对象。
exports.myThing = somethingFromMyFile;
我尝试将base64字符串放入徽标字段,然后只传递这个json对象,但这种方法不起作用,服务器需要内容类型:multipart / form-data;我无法知道如何做到这一点。我查看了很多问题,但没有找到如何使用文件和文件发布JSON。
答案 0 :(得分:0)
这是我用来向后端发送POST的通用方法:
/**
* toBase64
*
* @param bitmap
* @return String
*/
public static String toBase64 (Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
/**
* fromBase64
*
* @param encodedImage
* @return Bitmap
*/
public static Bitmap fromBase64 (String encodedImage) {
byte[] decodedByte = Base64.decode(encodedImage, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
发送的JSON以'msg'
的形式发送并且为了将图片编码为字符串,这是我的代码:
function escapeRegEx(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
}
var expression = new RegExp('\\\\"mediaType\\\\":\\\\"' + escapeRegEx(variable) + '\\\\"');
// or, using a template literal:
var expression = new RegExp(`\\\\"mediaType\\\\":\\\\"${escapeRegEx(variable)}\\\\"`);
希望它对你有所帮助。
答案 1 :(得分:0)
首先你应该改变方法。在您向任何地方发送JSON对象之前,您必须将图像(文件)加载到上载服务器。上传服务器它是一个服务器,您可以在其中存储您的图像,并可以通过引用访问它。 它看起来像这样:使用multipart / form-data将图像上传到服务器并获取图像链接。然后将此链接放入您的JSON对象,如
{
id: 123,
user: { logo: https://myuploadserver.com/img123.jpg }
}
然后你可以随心所欲地使用JSON对象
指向stackoverflow的一些链接,其中包含如何使用multipart / form-data将数据上传到上传服务器的说明:
1。simple HttpURLConnection POST file multipart/form-data
2。upload multipart form data to server