Struts2 Struts 2中的拖放图像浏览上载问题

Struts2 Struts 2中的拖放图像浏览上载问题,struts2,drag-and-drop,image-upload,Struts2,Drag And Drop,Image Upload,JSP表单: <s:form method="POST" enctype="multipart/form-data" action="uploaddocumentfile" id="uploaddocumentfile" namespace="/documents" > <s:file name="upload" id="holder"></s:file> /s:form> 动作类: 公共类上载文件操作扩展。。。{ pri

JSP表单

    <s:form method="POST" enctype="multipart/form-data" action="uploaddocumentfile" id="uploaddocumentfile" namespace="/documents" >
        <s:file name="upload" id="holder"></s:file>
   /s:form>
动作类: 公共类上载文件操作扩展。。。{

private File upload;

public File getUpload() {
    return upload;
}
public void setUpload(File upload) {
    this.upload = upload;
}
}
问题:在浏览文件上载中,我们可以通过文件上载getter setter在action类中自动获取表单文件值,但拖放如何获取文件值

JSP

<div id="template_dropzone"></div>
在Action类中,只需使用getter和setter创建一个字符串变量,即可检索文件名或内容类型,如下所示:-

    private File upload;
    private String uploadFileName;
    private String uploadContentType;

    public File getUpload() {
        return upload;
    }

    public void setUpload(File upload) {
        this.upload = upload;
    }

    public String getUploadFileName() {
        return uploadFileName;
    }

    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }

    public String getUploadFileContentType() {
        return uploadFileContentType;
    }

    public void setUploadFileContentType(String uploadFileContentType) {
        this.uploadFileContentType = uploadFileContentType;
    }

struts中的jsp表单文件上载示例:同一类型需要拖放文件上载该示例上的拖放操作正常..这不是拖放,java point示例是浏览图像文件examle..拖放意味着从计算机拖动文件并拖放到网页特定区域..尝试拖动文件以选择文件按钮它可以上传。如果你想让一个div充当文件的拖放,你需要像我不想使用任何插件一样使用jquery插件。我可以在代码中传递profilePic值作为值,而不是调用onclick listner,可以在read file中直接调用。函数readfiles(files){console.log(files);var a=files[0].name;//文件名var data=new FormData();data.append('upload',a);$.ajax({url:'uploadProfilePic',method:'POST',data:data,cache:false,contentType:false,processData:false,success:function(result){});…如果使用dropzone js,那么jsp文件将是可以的。请确保
a
不是文件名`var a=files[0];“请求是通过ajax发送的,而不是表单提交。值得注意的是,要使用Struts2和dropzone.js上载多个文件,需要自定义黑客。幸运的是,;)
var profilePic = null;
var dropZone = $('#template_dropzone').dropzone({
                 url: "#",
                 maxFiles: 1,
                 addRemoveLinks: true,
                 init: function() {
                    this.on("addedfile", function(file) {
                     // trigger when a file is added
                 });
                     this.on("complete", function(file) {
                       // trigger when the uploading of a file is completed
                        profilePic = file;
                  });
                     this.on("removedfile", function(file) {
                         var noOfFiles =  this.files.length; // can check No. of files
                  });
               });
    $('#uploadFile').on('click',function(event){
      var data = new FormData();
      data.append('upload',profilePic);
       $.ajax({
           url: 'uploadProfilePic',
           method: 'POST',
           data: data,
           cache: false,
           contentType: false,
           processData: false,
           success: function(result) {}
        });
    });
    private File upload;
    private String uploadFileName;
    private String uploadContentType;

    public File getUpload() {
        return upload;
    }

    public void setUpload(File upload) {
        this.upload = upload;
    }

    public String getUploadFileName() {
        return uploadFileName;
    }

    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }

    public String getUploadFileContentType() {
        return uploadFileContentType;
    }

    public void setUploadFileContentType(String uploadFileContentType) {
        this.uploadFileContentType = uploadFileContentType;
    }