love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

          常用鏈接

          統(tǒng)計

          積分與排名

          friends

          link

          最新評論

          在struts框架下實現(xiàn)文件的上傳 (轉(zhuǎn))

          由于jspsmartupload上傳文件,當(dāng)前端頁面沒有file控件時,后端用jspsmartupload控件upload時將會走入一個死循環(huán)。現(xiàn)在采用struts自己提供的功能實現(xiàn)文件的上傳。
          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 閱讀(528) 評論(0)  編輯  收藏 所屬分類: Struts

          主站蜘蛛池模板: 平利县| 丰原市| 屏边| 浦北县| 莱西市| 卢湾区| 柘荣县| 晋城| 正安县| 义马市| 资讯 | 井陉县| 疏勒县| 台南县| 大石桥市| 莱阳市| 普兰县| 淳化县| 安顺市| 金沙县| 剑河县| 神农架林区| 太仓市| 黄浦区| 鹿泉市| 简阳市| 筠连县| 潜江市| 上栗县| 长白| 大理市| 龙南县| 错那县| 龙川县| 河北区| 绍兴市| 都江堰市| 靖州| 固阳县| 定南县| 揭西县|