图片上传代码

现在准备在做一个图片上传的小项目,陆续会在博客上公开我的代码。

 

这里准备使用Struts来做,我用的IDE是MyEclipse 6.5,使用的Struts版本是1.3,我现在保存了开心网,就是kaixin001的照片上传的代码作为我的项目页面。准备逐渐破解它的页面结构来满足我的需求。

 

首先是上传图片需要的FormBean,PhotoForm

 

package com.tntxia.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;


public class PhotoForm extends ActionForm {

	
	private FormFile photo;
	
	private String name;

	

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		return null;
	}

	public void reset(ActionMapping mapping, HttpServletRequest request) {
	}

	public FormFile getPhoto() {
		return photo;
	}

	public void setPhoto(FormFile photo) {
		this.photo = photo;
	}
}

 

 

下面是图片上传使用的Action类:

 

package com.tntxia.struts.action;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Map;
import java.util.UUID;

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;

import com.tntxia.db.util.DBUtil;
import com.tntxia.struts.form.PhotoForm;

public class UploadFileAction extends Action {

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {

		PhotoForm userForm = (PhotoForm)form;
		FormFile file = userForm.getPhoto();
		try{
			UUID uuid = UUID.randomUUID();
			String pre = uuid.toString();
			String ext = file.getFileName().substring(file.getFileName().lastIndexOf("."));
			File saveFile = new File(this.getServlet().getServletContext().getRealPath("/")+"\\upload",pre+ext);
			InputStream in = file.getInputStream();
			FileOutputStream out = new FileOutputStream(saveFile);
			int len = 0;
			byte[] buf = new byte[1024];
			while((len = in.read(buf))!=-1){
				out.write(buf,0,len);
			}
			in.close();
			out.close();
			response.setContentType("text/html;charset=GBK");
			response.getWriter().print(file.getFileName());
			ArrayList<String> params = new ArrayList<String>();
			params.add(userForm.getName());
			params.add(pre+ext);
			DBUtil.executePreparedSQL("insert into photo(name,fileName) values(?,?)", params);
			ArrayList<String> cols = new ArrayList<String>();
			cols.add("name");
			cols.add("fileName");
			Map<String,ArrayList<String>> result = DBUtil.getArrayResult(cols, "select * from photo");
			request.setAttribute("result", result);
		}catch(Exception e){
			e.printStackTrace();
		}
		return mapping.findForward("/success");
	}
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值