HTTP Status 403 - Invalid CSRF Token 'null'

24477 단어 js
목차
  • 파일 업로드
  • 수정 전
  • jsp
  • 실현 요청
  • 수정 후
  • 파일 업로드
        :       ! 
    Status 403-forbidden Type Status Report Message Invalid CSRF Token 'null'
    

    수정 전
    jsp
    #   js
    
    <table style="width: 100%; font-size:12px;" border="0">
    	<tr>
    		<tdalign="left" style="padding-left: 10px;height:25px;width: 99%"><!--      -->
    		<input id="handle_file" onchange="checkFileType('handle_file')"  name="handle_file" type="file">
    		<font color=red>    :xls,xlsx,doc,docx,pdf,txt,jpg,gif,png,jpeg</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=red>    100M</font></td>
    	</tr>
    </table>
    

    실현 을 요구 하 다
    #   javascript
    /**
     *          、  
     *     :xls,xlsx,doc,docx,image,pdf,txt
     *     :100M
     * @param objId    id
     */
    function checkFileType(objId){
    	var fileSize = 100 * 1024 * 1024;//   
        //      
        var fileName = $('#' + objId).val();
        if(fileName == undefined || fileName == null || fileName == ""){
            return;
        }
        if(fileName.indexOf("&") != -1 || fileName.indexOf("?") != -1){
        		$.messager.alert('    ',"        ? &  !",'info');
    		$('#' + objId).val("");
    		return;
        }
        var fileFilter = "xls,xlsx,doc,docx,pdf,txt,jpg,gif,png,jpeg";
        var extention = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
        	if (fileFilter.indexOf(extention) < 0) {
        		$.messager.alert('    ',"    " + extention + "        !",'info');
        		$('#' + objId).val("");
        		return;
        	}
        //      
        var fs = 0;
        try {
            if (window.ActiveXObject) {
                //IE   
                var image = new Image();
                image.dynsrc = fileName;
                fs = image.fileSize;
            } else {
                fs = $('#' + objId)[0].files[0].size;
            }
        } catch(e) {
        }
        if (fs > fileSize) {
            $.messager.alert('    ',"    " + fileSize/1024/1024 +"MB     !",'info');
            $('#' + objId).val("");
            return;
        }
    }
    
    #   javascript
    var fileElementId = "handle_file";
    $.ajaxFileUpload({
    	url: basePath+"/submit",
    	secureuri : false,
    	dataType : 'json',
    	fileElementId : fileElementId, 
    	data:{
    		k1: v1,
    		k2: v2, 
    	},
    	success : function(resource)
    	{
    		
    	}
    

    수정 후
    #   javascript
    #new File([], '') File    
    var data = new FormData();
    data.append("key","value");
    data.append("handle_file", $('#handle_file')[0].files[0] : new File([], ''));
    . 
    . 
    . 
    
    $.ajax({
    	type: "GET"/"POST",
    	url: basePath+"/submit",
    	data: data,
    	success:function(resource){
    		
    	}
    });
    
    #   Java Controller
    
    @ResponseBody
    @RequestMapping(value="/submit", produces = "text/html; charset=utf-8")
    public String submitSJ(HttpServletRequest request, @RequestParam(required=false) CommonsMultipartFile handle_file) {
    	if (!handle_file.isEmpty()) {
    			logger.info("       :" + path);
    			File f = new File(path);
    			if (!f.exists()) {//         ,      
    				f.mkdirs();
    			}
    			FileOutputStream fos = new FileOutputStream(path + handle_file.getOriginalFilename());
    			InputStream fis = handle_file.getInputStream();
    			byte[] b = new byte[1024];
    			int len = 0;
    			while ((len = fis.read(b)) > 0) {
    				fos.write(b, 0, len);
    			}
    			fos.close();
    			fis.close();
    		}
    	return JSONObject.fromObject("{success:true,data:obj}");
    }
    

    끝..

    좋은 웹페이지 즐겨찾기