HTML5多文件上傳,ajax傳,Java WebService Spring接收

JS:

    function sub()
    {
        var file = document.getElementById("imageFile");
        var files = file.files;
        for(var i = 0 ; i < files.length;i++)
        {
            uploadFile(files[i]);
        }
    }
    
   var xhr = null;
   function uploadFile(file) {
        xhr = new XMLHttpRequest();
        xhr.addEventListener("error", uploadFailed, false);
        xhr.addEventListener("abort", uploadCanceled, false);
        xhr.open("post", "<%= request.getContextPath()%>/ImageUpload/addImage.html", true);
        var fd = new FormData();
        fd.append("groupid", "12060");
        fd.append("note", "1");
        fd.append("groupindex", "1");
        fd.append("cdate", "2014-04-10");
        fd.append("img", file);
        xhr.send(fd);
        xhr.onreadystatechange = cb;
    }
    function cb()
    {
        if(xhr.status == 200)
        {
            var b = xhr.responseText;
            if(b == "success"){
                alert("上傳成功!");
            }else{
                alert("上傳失敗!");
            }
        }
    }


HTML5:

<input type="file" id="imageFile" name="img" multiple="multiple" />
<input type="button" οnclick="sub()" value="提交" />


Java:

 @RequestMapping(value = "/addImage.html", method = RequestMethod.POST)
    public void doAddImageByGroupId(HttpServletRequest request, HttpServletResponse response,
            @RequestParam(value = "groupid", required = true) String groupId,
            @RequestParam(value = "note", required = true) String imageDetails,
            @RequestParam(value = "groupindex", required = true) String orderIndex,
            @RequestParam(value = "cdate", required = true) String cdate,
            @RequestParam(value = "img", required = true) CommonsMultipartFile imageFile) throws Exception {


        request.setCharacterEncoding(ConstantConfigUtil.Constant.CHARACTER);
        response.setCharacterEncoding(ConstantConfigUtil.Constant.CHARACTER);
        response.setContentType(ConstantConfigUtil.HTTPConstant.CONTENTTYPE);


        this.logger.info(String.format("doAddImageByGroupId param:%s %s %s %s %s", groupId, imageDetails,orderIndex,cdate,imageFile.getName()));
        //-------------------------先將文件拷貝到本地-----------------------------
        Image image = new Image();


        String rowId = StringUtil.makeUUID();
        image.setRowId(rowId);


        if (null == imageFile || imageFile.getSize() <= 0) {
            this.logger.info(String.format("doAddImageByGroupId result:%s", ConstantConfigUtil.StateConstant.FAILURE));
            response.sendError(400, "Lack of parameter!");
            return;
        }


        this.logger.info("ContentType: " + imageFile.getContentType());


        String fileDirectoryName = new StringBuffer().append(this.imageFilePath).append(File.separator).append(DateUtil.parseDateToStrDateIsNullReturnNow(null, DateUtil.DEFAULT_FORMAT_TEMPLATE)).toString();


        System.out.println(this.getImageFilePath());
        File directoryFile = new File(fileDirectoryName);
        if (!directoryFile.exists()) {
            directoryFile.mkdirs();
        }
        String fileName = new StringBuffer().append(fileDirectoryName).append(File.separator).append(rowId).append(".jpg").toString();
        this.logger.info("fileName: " + fileName);
        File resultFile = new File(fileName);
        if (!resultFile.exists()) {
            resultFile.createNewFile();
        }
        //此方法必須文件存在.
        int fileCopyResult = FileCopyUtils.copy(imageFile.getInputStream(), new FileOutputStream(resultFile));
        this.logger.info("fileCopyResult: " + fileCopyResult);
        //--------------------------------------------------------------
        String fileUploadPath = fileName.replace(imageFilePath,"");
        image.setFilePath(fileUploadPath);
        image.setImageDetails(imageDetails);
        image.setIndex(Integer.parseInt(orderIndex));
        image.setState(String.valueOf(StringUtil.IMAGE_SHOW));


        String dateStr = "";
        if (StringUtils.isBlank(cdate)) {
            dateStr = DateUtil.parseDateToStrDateIsNullReturnNow(null, DateUtil.FORMAT_TEMPLATE_STR_1);
        }else{
            dateStr = cdate;
        }
        image.setCreateDate(dateStr);
        image.setGroupId(groupId);


        //在組下添加圖片
        int addResult = this.imageService.addImage(image);
        if (addResult > 0) {
            //成功.
            this.logger.info(String.format("doAddImageByGroupId result:%s", ConstantConfigUtil.StateConstant.SUCCESS));
            response.getWriter().print(ConstantConfigUtil.StateConstant.SUCCESS);
        } else {
            //失敗.
            this.logger.info(String.format("doAddImageByGroupId result:%s", ConstantConfigUtil.StateConstant.FAILURE));
            response.getWriter().print(ConstantConfigUtil.StateConstant.FAILURE);
        }
        response.setStatus(200);
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章