love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統計

          積分與排名

          friends

          link

          最新評論

          在struts框架下實現文件的上傳 (轉)

          由于jspsmartupload上傳文件,當前端頁面沒有file控件時,后端用jspsmartupload控件upload時將會走入一個死循環。現在采用struts自己提供的功能實現文件的上傳。
          1、前端頁面upload.jsp
          <html:form action="/filesave.do" styleId="formItem" method="post"? enctype="multipart/form-data">
          <INPUT? class='input-file' type="file" name="theFile">
          </html:form>
          2、struts-config.xml文件配置
          <form-bean name="UploadForm" type="yhp.test.web.UploadForm" />
          <action input="/upload.jsp" name="UploadForm"?? path="/filesave" scope="request" type="yhp.test.web.UploadAction" validate="false">
          ????? <forward name="success" path="/success.jsp" />
          ????? <forward name="error" path="/error.jsp" />
          ??? </action>
          3、UploadForm.java文件
          package yhp.test.web;

          import org.apache.struts.upload.FormFile;
          import org.apache.struts.action.ActionForm;

          public class UploadForm extends ActionForm {
          ? protected String theText;?? //使用protected?,其它需要上傳的form可以繼承此form
          ? protected boolean writeFile = true;
          ? protected FormFile theFile;
          ? protected String filePath;

          ? public String getTheText() {
          ??? return theText;
          ? }
          ? public void setTheText(String theText) {
          ??? this.theText = theText;
          ? }
          ? public FormFile getTheFile() {
          ??? return theFile;
          ? }
          ? public void setTheFile(FormFile theFile) {
          ??? this.theFile = theFile;
          ? }
          ? public void setWriteFile(boolean writeFile) {
          ??? this.writeFile = writeFile;
          ? }
          ? public boolean getWriteFile() {
          ??? return writeFile;
          ? }
          ? public void setFilePath(String filePath) {
          ??? this.filePath = filePath;
          ? }
          ? public String getFilePath() {
          ??? return filePath;
          ? }
          ? public void reset() {
          ??? writeFile = false;
          ? }
          }

          4、UploadAction.java文件
          package yhp.test.web;

          import java.io.ByteArrayOutputStream;
          import java.io.File;
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.OutputStream;
          import java.util.Date;
          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;


          public class UploadAction extends Action {
          ? public ActionForward execute(ActionMapping actionMapping,
          ?????????????????????????????? ActionForm actionForm,
          ?????????????????????????????? HttpServletRequest httpServletRequest,
          ?????????????????????????????? HttpServletResponse httpServletResponse) throws
          ????? Exception {
          ??? if (actionForm instanceof UploadForm) {
          ????? // 獲取上傳的目錄
          ????? String path = getServlet().getServletContext().getInitParameter("UPLOADPATH");
          ????? File f = new File(path);
          ????? if (!f.isDirectory()) {
          ??????? f.mkdir();
          ????? }

          ????? UploadForm theForm = (UploadForm) actionForm;
          ????? String text = theForm.getTheText();
          ????? FormFile file = theForm.getTheFile();
          ????? String fileName = file.getFileName();
          ????? String contentType = file.getContentType();
          ????? boolean writeFile = theForm.getWriteFile();
          ????? String desFileName=path fileName ;
          ????? String size = (file.getFileSize() + " bytes");
          ????? try {
          ????????? InputStream stream = file.getInputStream();
          ?? OutputStream bos = new FileOutputStream(strFileName);?????????
          ????????? byte[] buffer = new byte[file.getFileSize()];
          ????????? stream.read(buffer);
          ????????? bos.write(buffer);
          ?? stream.close();?
          ????????? bos.close();
          ????????? return actionMapping.findForward("success");
          ????? }
          ????? catch (FileNotFoundException fnfe) {
          ????????? return actionMapping.findForward("success");
          ????? }
          ????? catch (IOException ioe) {
          ????????? return actionMapping.findForward("success");
          ????? }
          ????? catch(Exception eo){
          ????????? return actionMapping.findForward("error");
          ????? }?
          ??? }else{
          ????? return actionMapping.findForward("error");
          ??? }
          ? }
          }

          posted on 2006-05-23 18:03 liaojiyong 閱讀(520) 評論(0)  編輯  收藏 所屬分類: Struts

          主站蜘蛛池模板: 保定市| 闵行区| 彭水| 桃园市| 恩平市| 富锦市| 荥经县| 安图县| 平阴县| 榕江县| 湟源县| 大连市| 永康市| 逊克县| 密山市| 四子王旗| 宁河县| 鄂伦春自治旗| 驻马店市| 平江县| 焦作市| 奈曼旗| 黄平县| 商水县| 新蔡县| 正镶白旗| 雷山县| 睢宁县| 崇左市| 行唐县| 湖北省| 兴义市| 虎林市| 巫山县| 黑山县| 西乌珠穆沁旗| 汉源县| 甘孜县| 凤翔县| 华亭县| 收藏|