如何将图像从 js 客户端保存到 blobstore?
how to save a image from js client to blobstore?
我想将浏览器中的图像保存到 google blobstore。
我已经尝试过的:
将我的 img 转换为 base64 字符串:
reader = new FileReader();
reader.readAsBinaryString(file);
调用我的端点函数将其发送到 google 应用引擎。
var request = gapi.client.helloworldendpoints.uploadImage({'imageData': __upload.imageData, 'fileName': __upload.fileName, 'mimeType': __upload.mimeType, 'size': __upload.size});
request.execute(
function (result) {
console.log("Callback:");
console.log(result);
}
);
我在 Java 中的端点如下所示:
@ApiMethod(name = "uploadImage", path = "/uploadImage", httpMethod = "POST")
public ImageUploadRequest uploadImage(@Named("imageData") byte[] imageData, @Named("fileName") String fileName, @Named("mimeType") String mimeType, @Named("size") float size) {
return new ImageUploadRequest(imageData, fileName, mimeType, size);
}
问题是,我的端点似乎无法处理我的 base64 传输。我总是收到 503 后端错误
通过应用引擎将数据从我的 js 客户端发送到 blobstore 的最佳方式是什么?
更新
主要问题已解决。我设法上传了 blob。
Java脚本
var request = gapi.client.helloworldendpoints.uploadImage({
'imageData': __upload.imageData,
'fileName': __upload.fileName,
'mimeType': __upload.mimeType,
'size': __upload.size
});
Java端点
public ImageUploadRequest uploadImage(
Request imageData,
@Named("fileName") String fileName,
@Named("mimeType") String mimeType,
@Named("size") float size
) { ... }
要求就是这样
public class Request {
public Blob image;
}
我的下一个问题如下
我如何从 GAE 的 Java 端点向我的 UploadServlet 发送 MultipartRequest 以创建 blobkey 并将数据保存到 blobstorage,因为 Blobstorage 只接受发送到 servlet 的数据?
我想将浏览器中的图像保存到 google blobstore。 我已经尝试过的: 将我的 img 转换为 base64 字符串:
reader = new FileReader();
reader.readAsBinaryString(file);
调用我的端点函数将其发送到 google 应用引擎。
var request = gapi.client.helloworldendpoints.uploadImage({'imageData': __upload.imageData, 'fileName': __upload.fileName, 'mimeType': __upload.mimeType, 'size': __upload.size});
request.execute(
function (result) {
console.log("Callback:");
console.log(result);
}
);
我在 Java 中的端点如下所示:
@ApiMethod(name = "uploadImage", path = "/uploadImage", httpMethod = "POST")
public ImageUploadRequest uploadImage(@Named("imageData") byte[] imageData, @Named("fileName") String fileName, @Named("mimeType") String mimeType, @Named("size") float size) {
return new ImageUploadRequest(imageData, fileName, mimeType, size);
}
问题是,我的端点似乎无法处理我的 base64 传输。我总是收到 503 后端错误
通过应用引擎将数据从我的 js 客户端发送到 blobstore 的最佳方式是什么?
更新 主要问题已解决。我设法上传了 blob。
Java脚本
var request = gapi.client.helloworldendpoints.uploadImage({
'imageData': __upload.imageData,
'fileName': __upload.fileName,
'mimeType': __upload.mimeType,
'size': __upload.size
});
Java端点
public ImageUploadRequest uploadImage(
Request imageData,
@Named("fileName") String fileName,
@Named("mimeType") String mimeType,
@Named("size") float size
) { ... }
要求就是这样
public class Request {
public Blob image;
}
我的下一个问题如下 我如何从 GAE 的 Java 端点向我的 UploadServlet 发送 MultipartRequest 以创建 blobkey 并将数据保存到 blobstorage,因为 Blobstorage 只接受发送到 servlet 的数据?