我让gwt-upload在 GAE 应用程序中工作。正如建议的那样,我实现了一个自定义 UploadAction 来处理 DataStore 中文件的存储。代码如下:
public String executeAction(HttpServletRequest request,
List<FileItem> sessionFiles) throws UploadActionException {
logger.info("Starting: DatastoreUploadAction.executeAction");
String executeAction = super.executeAction(request, sessionFiles);
for (FileItem uploadedFile : sessionFiles) {
Long entityId = new Long(2001); // This is where i wanna use a request parameter
InputStream imgStream;
try {
imgStream = uploadedFile.getInputStream();
Blob attachment = new Blob(IOUtils.toByteArray(imgStream));
String contentType = uploadedFile.getContentType();
appointmentDao.setAppointmentAttachment(entityId, attachment,
contentType);
} catch (IOException e) {
logger.error("Unable to store file", e);
throw new UploadActionException(e);
}
}
return executeAction;
}
如您所见,DAO 类需要“EntityID”来将上传的文件存储在 DataStore 中。现在我正在使用一个硬编码的值,它运行良好,但我希望客户端发送的 entityID 作为请求参数。上传的小部件是 MultiUploader:
private MultiUploader defaultUploader;
MultiUploader - 或任何其他小部件 - 是否可以设置请求参数以便我可以在我的 UploadAction 中使用它?