java摆渡人,摆渡人,外婆桥!

由于jspsmartupload上传文件,当前端页面没有file控件时,后端用jspsmartupload控件upload时将会走入一个死循环。现在采用struts自己提供的功能实现文件的上传。

1、前端页面upload.jsp

2、struts-config.xml文件配置

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");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值