jsp web上传文件

5 篇文章 0 订阅
4 篇文章 0 订阅

JS代码

	function UploadPic() {
		var formData = new FormData($( "#uploadForm" )[0]);  
	     $.ajax({  
	          url: '<%=path %>/UploadImg.do' ,  
	          type: 'POST',  
	          data: formData,
	          dataType:'json',
	          async: false,  
	          cache: false,  
	          contentType: false,  
	          processData: false,  
	          success: function (returndata) {
	        	  if(returndata.result=='true') {
		        	  $("#imgurl").val(returndata.imgurls);
		        	  $("#bookimg").attr("src",returndata.imgurls); 
	        	  } else {
	        		  alert('上传失败···');
	        	  }
	          },  
	          error: function (returndata) {  
	              alert('上传失败···');  
	          }  
	     });
	}
表单部分内容

<form class="form-horizontal" method="post" id="uploadForm">
<img id="bookimg" width="200px" src="<%=basePath %>Admin/img/nopic.png">
								<input type="hidden" name="imgurl" id="imgurl">
								<p align="center">
									<input type="file" id="uploadimg" name="uploadimg" class="form-control">
									<a href="javascript:;" οnclick="UploadPic()">上传图片</a>
								</p>
</form>

Servlet
package com.sTree.Servlet.Action;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.sTree.Imp.ActionImp;

import net.sf.json.JSONObject;

/**
* @ClassName: UploadImgAction
* @Description: 上传图片
* @author 爱敲代码的大海
* @date 2017年8月12日 下午8:59:18
*
*/
public class UploadImgAction implements ActionImp {

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
		if (!ServletFileUpload.isMultipartContent(request)) {
		    // 如果不是通过表单提交过来的则停止
		    PrintWriter writer = response.getWriter();
		    writer.println("非法操作···");
		    writer.flush();
		    return;
		}
		// 配置上传参数
        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        // 中文处理
        upload.setHeaderEncoding("UTF-8"); 
        // 这个路径相对当前应用的目录
        String uploadPath = request.getServletContext().getRealPath("/upload"); 
        
        // 如果目录不存在则创建
        File uploadDir = new File(uploadPath);
        if (!uploadDir.exists()) {
            uploadDir.mkdir();
        }
 
        try {
            // 解析请求的内容提取文件数据
            List<FileItem> formItems = upload.parseRequest(request);
            if (formItems != null && formItems.size() > 0) {
                // 迭代表单数据
                for (FileItem item : formItems) {
                    // 处理不在表单中的字段
                    if (!item.isFormField()) {
                        String fileName = new File(item.getName()).getName();
                        //给文件名添加时间
                        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");
                        fileName=sdf.format(new Date())+fileName;
                        String filePath = uploadPath + File.separator + fileName;
                        File storeFile = new File(filePath);
                        // 保存文件到硬盘
                        item.write(storeFile);
                        boolean b=storeFile.exists();
                        String result="{'result':'"+b+"','imgurls':'upload/"+fileName+"'}";
                        //生成json返回
                        JSONObject json=JSONObject.fromObject(result);
                        response.getWriter().print(json.toString());
                    }
                }
            }
        } catch (Exception ex) {
        	ex.printStackTrace();
        }
	}

}
效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值