/**
* 利用struts的FormFile上传图片
* @param mapping
* @param actionForm
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward upload(ActionMapping mapping, ActionForm actionForm,
HttpServletRequest request, HttpServletResponse response) throws Exception {
AdvertiseForm advertiseForm = (AdvertiseForm) actionForm;
FormFile file=advertiseForm.getFormFile("picFile");
try{
String filename=FileBean.uploadFile(this.getServlet(),IConstants.UPLOAD_PATH, file, request,true);
System.out.println("上次的文件名称为:"+filename);
response.getWriter().print(filename);
}catch (Exception e) {
e.printStackTrace();
response.getWriter().print("上传失败!");
}
return null;
}
private FormFile picFile;//actionForm里面要设置
public static String uploadFile(HttpServlet servlet,String path,FormFile file, HttpServletRequest request,boolean flag){
String fileName=getExtention(file.getFileName());
if(file==null){
return "";
}
if(flag){
// String webapps=request.getRealPath("/");
// webapps=webapps.substring(0,webapps.lastIndexOf("webapps")+"webapps".length());
// path=webapps+path;
path = request.getRealPath("/")+path;
}
else path=request.getRealPath("/")+"/resentFiles";
InputStream streamin = null;
OutputStream bos = null;
try{
File filepath = new File(path);
if (!filepath.exists()) {
filepath.mkdirs();
}
fileName=GUID.getInstance().get16()+fileName;
streamin = file.getInputStream();
bos = new FileOutputStream(path +"/"+fileName);
int bytesRead= 0;
byte[] sum = new byte[8192];
int i=0;
while ((bytesRead = streamin.read(sum, 0, 8192)) != -1)
{
i=i+bytesRead;
bos.write(sum, 0, bytesRead);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(bos!=null){
bos.close();
}
if(streamin!=null){
streamin.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return fileName;
}
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
if(pos<1){
return null;
}
return fileName.substring(pos,fileName.length());
}