我在處理上載到服務器的映像時遇到問題。在網上查看,在我看來,我需要先從apache庫創建一個DiskFileItemFactory
對象,然後創建一個ServletFileUpload
對象。從那裏我遍歷所有表單項目,直到我點擊文件。然而,當我做formItems.iterator()
的compliler抱怨將圖像上傳到Servlet,然後轉發到亞馬遜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 Servlets的新手,但熟悉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());
}
}