javaweb中struts的图片上传

图片上传我给他分3部分:

第一部分是jsp页面: 

<form action="advertise_advertiseSave.action" method="post"  name="form" enctype="multipart/form-data"

<tr>

<td nowrap align="right" width="6%">广告附图:</td>
  <td width="34%">                                          
  <input name="fileUpload" type="file"  id="advertisePic" style="width:200px" title="广告附图" value="选择" />
</td>

</tr>

</form>


第二部分是工具部分(即最关键的图片上传的代码)

/**
 *
 */
package com.wyp.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;


import org.apache.struts2.ServletActionContext;

/**
 * @author Wyp
 *
 */
public class PictureUpload {
    DateFormat df = new SimpleDateFormat("yyyyMMdd-hh-mm-ss-");
    String questionTime = df.format(new Date());
    HttpServletRequest request = ServletActionContext.getRequest();

    public String PicUpload(File fileUpload, String fileUploadFileName,
            String fileUploadContentType, String savePath) throws Exception {
        // 以服务器的文件保存地址和原文件名建立上传文件输出流
        FileOutputStream fos = new FileOutputStream(ServletActionContext
                .getRequest().getRealPath(savePath)
                + "\\"
                + questionTime
                + fileUploadFileName);
        // 以上传文件建立一个文件上传流
        FileInputStream fis = new FileInputStream(fileUpload);
        // 将上传文件的内容写入服务器
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = fis.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
        }
        String savePicName = request.getContextPath() + savePath + "/"
                + questionTime + fileUploadFileName.toString();
        return savePicName;
    }

}


第三部分是action部分:(处理jsp页面传过来的信息并使用图片上传工具)

1.必须的声明:(每个都要配备乡相应的set和get方法

                               private File fileUpload;
                               private String fileUploadFileName;
                               private String fileUploadContentType;
                               private String savePath;
2.实现代码(这是一个方法,用于数据库保存提交的信息,可筛选出需要的使用):

public String advertiseSave() throws Exception{
        
        this.savePath = "/images/";    //此处为你的项目下的一个文件夹
//        先判断fileUpload是否为空
        if(fileUpload==null){
            
        }else{
            PictureUpload fileUp = new PictureUpload();
            String adverisetPicName = fileUp.PicUpload(fileUpload,
                    fileUploadFileName, fileUploadContentType, savePath);
            this.advertisement.setAdvertisePic(adverisetPicName);
            //System.out.println("图片上传的名称为:" + adverisetPicName+"2222222"+fileUploadFileName);

           //此处是图片上传的处理代码
        }
        
        
        if(this.advertiseService.advertiseAdd(this.advertisement)){
            return "advertise_save_success";
        }else{
            return "advertise_save_failed";
        }
        
    }


最后的最后千万注意jsp页面中的input标签的name属性的值和action中的File参数要一样!!!这样就完事了。。。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值