jsp上传图片

服务器代码仍然在servelet中,需要去apach上下载commons-fileupload-current-bin.zip

//jsp页image.jsp

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>

</HEAD>
<body>
<form enctype="multipart/form-data" name="myForm" method="post" action="addswapproservlet"

οnsubmit="return validatePro();">

                  <input type="file" id="smallImg" name="smallImg"

onClick="pic.src=smallImg.value;"/>&nbsp;&nbsp;
                  <input  type="submit" id="subSmallImg" name="subSmallImg" value="上传"

οnclick="pic.src=smallImg.value; myForm.action='uploadservlet';myForm.οnsubmit=null;"/>
<img id=pic name=pic src=''/>
</form>
</body>
</HTML>
//UploadServlet

package oldgoods;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.DiskFileUpload;

public class UploadServlet extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=GBK";

    //Initialize global variables
    public void init() throws ServletException {
    }

    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        ///
        request.getSession().setAttribute("userName", "aaaa");
        PrintWriter out = response.getWriter();
        boolean isMultipart = FileUpload.isMultipartContent(request);
        if (isMultipart) {
            DiskFileUpload upload = new DiskFileUpload();
            upload.setSizeThreshold(6);
            upload.setSizeMax(400000);
            List items = null;
            try {
                items = upload.parseRequest(request);
            } catch (Exception ex) {
                out.println("<script language='javascript'>alert('文件类型错误或文件太大!//n请重新选择文件路径!');window.history.go(-1);</script>");
                out.close();
                return;
            }
            Iterator iter = items.iterator();
            String webModuleDir = request.getSession().getServletContext().
                                  getRealPath("");
            File imageDir = new File(webModuleDir + "/goodsimages");
            //创建目录
            if (!imageDir.isDirectory()) {
                imageDir.mkdir();
            }
            //该循环判断是哪个上传
            String upLoadName = null;
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                String name = item.getFieldName();
                if (name.equals("subBigImg") || name.equals("subSmallImg")) {
                    upLoadName = name;
                    break;
                }
            }

            //重新定位指针
            iter=items.iterator();
            //遍历
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                String name = item.getFieldName();
                long size = item.getSize();
                String Type = item.getContentType();
                //处理保存
                if (Type != null && (Type.equals("image/pjpeg") || Type.equals("image/jpeg") || Type.equals("image/gif"))) {
                    if (size < 51200 && size > 0) {
                        if(!("sub"+name).toUpperCase().equals(upLoadName.toUpperCase()))
                        {
                            continue;
                        }
                        String strUserDir = "/" +
                                            MD5.MD5(Calendar.getInstance().
                                getTime() +
                                request.getSession().getAttribute("userName").
                                toString());
                        File userDir = new File(imageDir.getPath() + strUserDir);
                        userDir.mkdir();

                        try {
                            String path = null;
                            if (Type.equals("image/pjpeg") ||
                                Type.equals("image/jpeg")) {
                                path = request.getSession().
                                       getServletContext().
                                       getRealPath("/goodsimages/" + strUserDir +
                                        "/" +
                                        name + ".jpg");
                            } else if (Type.equals("image/gif")) {
                                path = request.getSession().
                                       getServletContext().
                                       getRealPath("/goodsimages/" + strUserDir +
                                        "/" +
                                        name + ".gif");
                            }
                            File f = new File(path);
                            try {
                                item.write(f);
                                out.println(
                                        "<script language='javascript'>alert('上传成功!');window.history.go(-1);</script>");
                                break;
                            } catch (Exception ex) {
                                ex.printStackTrace();
                            }
                            break ;
                        } catch (Exception e) {
                            out.println(e);
                        }
                    } else {
                        out.println("<script language='javascript'>alert('文件类型错误或文件太大!//n请重新选择文件路径!');window.history.go(-1);</script>");
                    }
                    //保存结束
                }
            }
        }

        out.close();
    }

    //Process the HTTP Post request
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
        doGet(request, response);
    }

    //Clean up resources
    public void destroy() {
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值