サーバーにアップロードしたイメージの処理に問題があります。オンラインで見ると、最初にapacheライブラリからDiskFileItemFactory
オブジェクトを作成してから、ServletFileUpload
オブジェクトを作成する必要があります。そこから、ファイルにヒットするまで、すべてのフォーム項目をループします。私はformItems.iterator()
complilerがイメージをサーブレットにアップロードしてAmazon S3に転送
- Iterator is a raw type. References to generic type Iterator<E> should be
parameterized
- The method iterator() is undefined for the type List
を文句行うときしかし、どのように私はこのエラーを修正については行くだろう、と誰かが私が間違ってやって学ぶのを助けることができますか?私はJava Servletを初めて使い慣れていますが、Javaに精通しています。以下は私のコードです。ありがとう!
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request, response);
PrintWriter out = response.getWriter();
AWSCredentials credentials = new BasicAWSCredentials("XXXX", "XXXX");
AmazonS3 s3Client = new AmazonS3Client(credentials);
try {
out.println("Hello, THIS WORKED!!<br/>");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
out.println("Multipart is true");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST");
response.setHeader("Access-Control-Allow-Headers", "Content-Type");
response.setHeader("Access-Control-Max-Age", "86400");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(THRESHOLD_SIZE);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(MAX_FILE_SIZE);
upload.setSizeMax(MAX_REQUEST_SIZE);
List formItems = (List) upload.parseRequest(request);
/////COMPILER ERROR. It complains that the Iterator is a raw type. How Do I learn how to fix this?
Iterator iter = formItems.iterator();
// iterates over form's fields to get UUID Value
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
ObjectMetadata om = new ObjectMetadata();
om.setContentLength(item.getSize());
try {
} catch (AmazonServiceException ase) {
out.println(ase.toString());
} catch (AmazonClientException ace) {
out.println(ace.toString());
}
s3Client.putObject("images", "TestImg.jpg", item.getInputStream(), om);
if (item.isFormField()) {
out.println(item.getString());
}
// processes only fields that are not form fields
if (!item.isFormField()) {
// itemFile = item;
}
}
//
// }
//
}
} catch(Exception e) {
out.print(e.toString());
}
}