📄 fileuploadaction.java
字号:
package fm.action;
import fm.DB;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Vector;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
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.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;
import fm.Constants;
import fm.User;
import fm.UserFile;
import fm.form.FileUploadForm;
public class FileUploadAction extends Action {
public ActionForward execute(ActionMapping map, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
User curUser = (User) session.getAttribute(Constants.CUR_USER_KEY);
String pageForward = "ToErrorPage";
ActionMessages errors = new ActionMessages();
ServletContext context = servlet.getServletContext();
DataSource dataSource = (DataSource) context.getAttribute(Constants.DATASOURCE_KEY);
DB db = new DB(dataSource);
String upUserId=request.getParameter("id");
User user2=new User();
String upUserName=(user2.search(db, upUserId)).getUsername();
FileUploadForm fileUploadForm = (FileUploadForm) form;
FormFile file = fileUploadForm.getFile();
String filename = file.getFileName();
String fileType=file.getContentType();
// filename = new String(filename.getBytes("GB2312"), "ISO-8859-1");
float filesize = (float) (file.getFileSize() / 1024.0);
GregorianCalendar calendar = new GregorianCalendar();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
String uploadtime = year + "-" + month + "-" + day;
InputStream streamIn = null;
OutputStream streamOut = null;
String sysroot = servlet.getServletContext().getInitParameter("sysroot");
String servletContext = servlet.getServletContext().getRealPath("/");
//System.out.println("servletContext=" + servletContext);
String ownerFolder = sysroot + "/"+ upUserId;
String vlocation = ownerFolder + "/" + filename;
System.out.println("ownerFolder=" + ownerFolder);
String plocation = servletContext+"/"+vlocation ;
try {
File rootDir = new File(servletContext+ownerFolder);
if (!rootDir.isDirectory()) {
rootDir.mkdirs();
}
streamIn = file.getInputStream();
streamOut = new FileOutputStream(plocation);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {
streamOut.write(buffer, 0, bytesRead);
}
streamOut.close();
streamIn.close();
} catch (Exception e) {
System.err.println();
}
UserFile userFile = new UserFile();
int owner = curUser.getId();
userFile.setOwner(owner);
userFile.setFilename(filename);
userFile.setFilesize(filesize);
userFile.setUploadtime(uploadtime);
userFile.setLocation(vlocation);
userFile.setFileType(fileType);
System.out.println("vlocation==="+userFile.getLocation());
// ServletContext context = servlet.getServletContext();
// DataSource dataSource = (DataSource) context
// .getAttribute(Constants.DATASOURCE_KEY);
// DB db = new DB(dataSource);
if (userFile.insert(db)) {
Vector fileVector = new UserFile().searchUserFiles(db, new Integer(
curUser.getId()).toString());
session.setAttribute(Constants.FILE_LIST_KEY, fileVector);
pageForward = "ToFileList";
} else {
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"error.userfile.insert.failed"));
if (!errors.isEmpty()) {
saveErrors(request, errors);
}
pageForward = "ToErrorPage";
}
db.close();
file.destroy();
request.setAttribute("userId", upUserId);
request.setAttribute("userName", upUserName);
return (map.findForward(pageForward));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -