Академический Документы
Профессиональный Документы
Культура Документы
<module>
<context-param>
<!-- max size of the upload request -->
<param-name>maxSize</param-name>
<param-value>3145728</param-value>
</context-param>
<context-param>
<!-- Useful in development mode to slow down the uploads in
fast networks.
Put the number of milliseconds to sleep in each block
received in the server.
false or 0, means don't use slow uploads -->
<param-name>slowUploads</param-name>
<param-value>200</param-value>
</context-param>
<servlet>
<servlet-name>uploadServlet</servlet-name>
<!-- put here your customized servlet extending UploadAction
-->
<servlet-class>gwtupload.server.UploadServlet</servlet-
class>
</servlet>
<servlet-mapping>
<servlet-name>uploadServlet</servlet-name>
<url-pattern>*.gupld</url-pattern>
</servlet-mapping>
// Add a finish handler which will load the image once the
upload finishes
defaultUploader.addOnFinishUploadHandler(onFinishUploaderHandler
);
}
4. Create your customize servlet. This is an example of how to save the received
files in a temporary folder:
public class SampleUploadServlet extends UploadAction {
/**
* Maintain a list with received files and their content types
*/
Hashtable<String, File> receivedFiles = new Hashtable<String,
File>();
Hashtable<String, String> receivedContentTypes = new
Hashtable<String, String>();
/**
* Override executeAction to save the received files in a
custom place
* and delete this items from session.
*/
@Override
public String executeAction(HttpServletRequest request,
List<FileItem> sessionFiles) throws UploadActionException {
for (FileItem item : sessionFiles) {
if (false == item.isFormField()) {
try {
File file = File.createTempFile("upload-", ".bin", new
File("/tmp"));
item.write(file);
receivedFiles.put(item.getFieldName(), file);
receivedContentTypes.put(item.getFieldName(),
item.getContentType());
} catch (Exception e) {
throw new UploadActionException(e.getMessage());
}
}
removeSessionFileItems(request);
}
return null;
}
/**
* Remove a file when the user sends a delete request
*/
@Override
public void removeItem(HttpServletRequest request, String
fieldName) throws UploadActionException {
File file = receivedFiles.get(fieldName);
receivedFiles.remove(fieldName);
receivedContentTypes.remove(fieldName);
if (file != null) file.delete();
}
/**
* Get the content of an uploaded file
*/
@Override
public void getUploadedFile(HttpServletRequest request,
HttpServletResponse response) throws IOException {
String fieldName = request.getParameter(PARAM_SHOW);
File f = receivedFiles.get(fieldName);
if (f != null) {
response.setContentType(receivedContentTypes.get(fieldName));
FileInputStream is = new FileInputStream(f);
copyFromInputStreamToOutputStream(is,
response.getOutputStream());
} else {
renderXmlResponse(request, response,
ERROR_ITEM_NOT_FOUND);
}
}