package com.hy.test.action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import com.hy.test.form.ActFm_file;
import org.apache.struts.action.Action;
import org.apache.struts.upload.*;
import java.io.*;
//处理文件上传
public class Act_file extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response) {
ActFm_file actFm_file = (ActFm_file) actionForm;
// String dir = this.servlet.getServletContext().getRealPath("img");
// System.out.println(" dir = "+ dir );
//得到 ActionForm 中的 FormFile
FormFile ff = actFm_file.getFile();
//判断是否为空,没有找到文件,这里为空
if( ff == null )
{
System.out.println(" 文件没有找到!");
//没有找到上传得文件,跳到 error 页面
return actionMapping.findForward("error");
}
//取得要上传得文件的名称
String fname= ff.getFileName();
//取得要上传得文件的大小
int isize = ff.getFileSize();
String size = Integer.toString( isize );
try {
//得到要上传文件的输入流
InputStream is = ff.getInputStream();
//建立输入文件的路径
File f = new File( "f:\\"+fname );
if( !f.exists()) f.createNewFile();
//建立输出流
OutputStream os = new FileOutputStream( f );
//读上传文件,写入输出文件
int bytesRead = 0;
byte[] buffer = new byte[isize];
while ((bytesRead = is.read(buffer, 0, isize)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
is.close();
} catch ( Exception ex) {
System.out.println(" 输入,输出流异常!");
return actionMapping.findForward("error");
}
actFm_file.setFname( fname);
actFm_file.setSize( size );
ff.destroy();
return actionMapping.findForward("success");
}
}
评论3