uploadaction.java
来自「this is for appfuse1.8 source using stru」· Java 代码 · 共 124 行
JAVA
124 行
package org.appfuse.webapp.action;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.upload.FormFile;import org.appfuse.Constants;import org.appfuse.webapp.form.UploadForm;/** * This class handles the uploading of a resume (or any file) and writing it to * the filesystem. Eventually, it will also add support for persisting the * files information into the database. * * <p> * <a href="UploadAction.java.html"><i>View Source</i></a> * </p> * * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a> * * @struts.action name="uploadForm" path="/uploadFile" scope="request" * validate="true" input="failure" * * @struts.action-forward name="failure" path="/WEB-INF/pages/uploadForm.jsp" * @struts.action-forward name="success" path="/WEB-INF/pages/uploadDisplay.jsp" */public class UploadAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Did the user click the cancel button? if (isCancelled(request)) { request.removeAttribute(mapping.getAttribute()); return (mapping.findForward("mainMenu")); } //this line is here for when the input page is upload-utf8.jsp, //it sets the correct character encoding for the response String encoding = request.getCharacterEncoding(); if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8"))) { response.setContentType("text/html; charset=utf-8"); } UploadForm theForm = (UploadForm) form; //retrieve the name String name = theForm.getName(); //retrieve the file representation FormFile file = theForm.getFile(); //retrieve the file name String fileName = file.getFileName(); //retrieve the content type String contentType = file.getContentType(); //retrieve the file size String size = (file.getFileSize() + " bytes"); String data = null; String location = null; // the directory to upload to String uploadDir = servlet.getServletContext().getRealPath("/resources") + "/" + request.getRemoteUser() + "/"; //write the file to the file specified File dirPath = new File(uploadDir); if (!dirPath.exists()) { dirPath.mkdirs(); } //retrieve the file data InputStream stream = file.getInputStream(); //write the file to the file specified OutputStream bos = new FileOutputStream(uploadDir + fileName); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead); } bos.close(); location = "The file has been written to <br />\"" + dirPath.getAbsolutePath() + Constants.FILE_SEP + file.getFileName() + "\""; //close the stream stream.close(); // place the data into the request for retrieval on next page request.setAttribute("friendlyName", name); request.setAttribute("fileName", fileName); request.setAttribute("contentType", contentType); request.setAttribute("size", size); request.setAttribute("data", data); request.setAttribute("location", location); //destroy the temporary file created file.destroy(); //return a forward to display.jsp return mapping.findForward("success"); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?