Я хочу загрузить изображения в облачное хранилище Google, и вот мой код из весенней загрузки.Но проблема в том, что это вообще не работает и выдает ошибку вроде этого:
2018-10-22 15: 22: 55.628 ОШИБКА 6172 --- [nio-8080-exec-6] oaccC [. [.[/].[dispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] вызвала исключение [Ошибка обработки запроса;вложенное исключение - java.lang.IllegalArgumentException: вызванный метод public abstract java.io.InputStream org.apache.commons.fileupload.FileItemStream.openStream () вызывает java.io.IOException не метод доступа!] с коренной причиной
пожалуйста, помогите мне.Ниже приведен код, который я написал
private static Storage storage = null;
// [START init]
static {
storage = StorageOptions.getDefaultInstance().getService();
}
@SuppressWarnings("deprecation")
@RequestMapping(method = RequestMethod.POST, value = "/imageUpload")
public String uploadFile(FileItemStream fileStream)
throws IOException, ServletException {
String bucketName = "mcqimages";
checkFileExtension(fileStream.getName());
DateTimeFormatter dtf = DateTimeFormat.forPattern("-YYYY-MM-dd-HHmmssSSS");
DateTime dt = DateTime.now(DateTimeZone.UTC);
String dtString = dt.toString(dtf);
final String fileName = fileStream.getName() + dtString;
BlobInfo blobInfo =
storage.create(
BlobInfo
.newBuilder(bucketName, fileName)
.setAcl(new ArrayList<>(Arrays.asList(Acl.of(User.ofAllUsers(), Role.READER))))
.build(),
fileStream.openStream());
return blobInfo.getMediaLink();
}
private void checkFileExtension(String fileName) throws ServletException {
if (fileName != null && !fileName.isEmpty() && fileName.contains(".")) {
String[] allowedExt = {".jpg", ".jpeg", ".png", ".gif"};
for (String ext : allowedExt) {
if (fileName.endsWith(ext)) {
return;
}
}
throw new ServletException("file must be an image");
}
}