001
014
015 package com.liferay.portal.webdav.methods;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.servlet.ServletResponseUtil;
020 import com.liferay.portal.kernel.webdav.Resource;
021 import com.liferay.portal.kernel.webdav.WebDAVException;
022 import com.liferay.portal.kernel.webdav.WebDAVRequest;
023 import com.liferay.portal.kernel.webdav.WebDAVStorage;
024
025 import java.io.InputStream;
026
027 import javax.servlet.http.HttpServletRequest;
028 import javax.servlet.http.HttpServletResponse;
029
030
034 public class GetMethodImpl implements Method {
035
036 @Override
037 public int process(WebDAVRequest webDavRequest) throws WebDAVException {
038 InputStream is = null;
039
040 try {
041 WebDAVStorage storage = webDavRequest.getWebDAVStorage();
042 HttpServletRequest request = webDavRequest.getHttpServletRequest();
043 HttpServletResponse response =
044 webDavRequest.getHttpServletResponse();
045
046 Resource resource = storage.getResource(webDavRequest);
047
048 if (resource == null) {
049 return HttpServletResponse.SC_NOT_FOUND;
050 }
051
052 try {
053 is = resource.getContentAsStream();
054 }
055 catch (Exception e) {
056 if (_log.isErrorEnabled()) {
057 _log.error(e.getMessage());
058 }
059 }
060
061 if (is != null) {
062 try {
063 ServletResponseUtil.sendFile(
064 request, response, resource.getDisplayName(), is,
065 resource.getSize(), resource.getContentType());
066 }
067 catch (Exception e) {
068 if (_log.isWarnEnabled()) {
069 _log.warn(e);
070 }
071 }
072
073 return HttpServletResponse.SC_OK;
074 }
075
076 return HttpServletResponse.SC_NOT_FOUND;
077 }
078 catch (Exception e) {
079 throw new WebDAVException(e);
080 }
081 }
082
083 private static Log _log = LogFactoryUtil.getLog(GetMethodImpl.class);
084
085 }