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