Mercurial Hosting > nabble
diff src/nabble/view/web/forum/UploadFile2.jtp @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children | 18cf4872fd7f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nabble/view/web/forum/UploadFile2.jtp Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,78 @@ +<% +package nabble.view.web.forum; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Map; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileUploadException; +import fschmidt.util.servlet.JtpContext; +import fschmidt.util.java.HtmlUtils; +import nabble.view.lib.Jtp; +import nabble.view.lib.Shared; +import nabble.model.FileUpload; +import nabble.model.Message; +import nabble.model.ModelException; +import nabble.model.User; + +public final class UploadFile2 extends HttpServlet { + private static final Logger logger = LoggerFactory.getLogger(UploadFile2.class); + + protected void service(HttpServletRequest request,HttpServletResponse response) + throws ServletException, IOException + { + User user = Jtp.getUser(request,response); + if( user==null ) { + Jtp.login("You must login to upload a file.",request,response); + return; + } + PrintWriter out = response.getWriter(); + %> + <html> + <body> + <script type="text/javascript"> + <% + try { + final Map<String,FileItem> map; + try { + map = Jtp.getFileItems(request); + } catch(FileUploadException e) { + logger.warn("",e); + throw ModelException.newInstance( "upload_filed", "upload failed - " + e.getMessage() ); + } + FileItem fi = map.get("file"); + char type = map.get("srcType").getString().charAt(0); + long id = Long.parseLong(map.get("srcId").getString()); + Message.Source src = Message.SourceType.getType(type).getSource(user.getSite(),id); + String name = FileUpload.uploadFile(fi,src); + JtpContext jtpContext = (JtpContext)getServletContext().getAttribute(JtpContext.attrName); + jtpContext.setTimeLimit(request,0L); + + if (map.containsKey("textAreaId")) { %> + parent.Nabble.uploadedFile("<%=name%>", "<%=map.get("textAreaId").getString()%>"); + <% } else { %> + parent.Nabble.uploadedFile("<%=name%>"); + <% } %> + parent.Nabble.closeWindows(); + <% + } catch(ModelException e) { + logger.warn("file upload failed",e); + %> + alert("<%=HtmlUtils.javascriptStringEncode(e.getMessage())%>"); + history.back(); + <% + } + %> + </script> + </body> + </html> + <% + } +} +%>