4

私は ajax 呼び出しを持っています。何が起こるかというと、表示したくない「入力ファイル」をクリックする画像をクリックすることです。入力 val() が変更されると、メソッドuploadListener()が呼び出されます。これは基本的に、サーバーにファイルを取得する ajax メソッドであり、「サーバーにアップロードする」コードは次のようになります: html:

<img id="${assayAssessRequest.id}" src="[@spring.url '/images/buttons/upload.jpg'/]" onclick="uploadFile(this);" title="Upload File" />
<form id="uploadForm" action="[@spring.url '/assay/designability/uploadFile.htm'/]" method="POST" enctype="multipart/form-data">
        <div style="display: none;">
        [@spring.formInput path="multiPartBean.file" fieldType="file" attributes="title='path' class='upload' accept='.txt,.csv,.zip'" /]
        [@spring.formHiddenInput path="multiPartBean.fileName" attributes=" onchange='uploadListener();'class='uploadFileName'" /]
        [@spring.bind "multiPartBean"/]
        </div>
        <input type="submit" id="uploadButton" value="upload" />
    </form>

JavaScript:

function uploadFile(){
    document.getElementById('inputFile').click();
}

function uploadListener(){
   $('#uploadForm').attr("action","[@spring.url    '/assay/designability/uploadFile.htm'/]");
   alert($('#uploadForm').attr('action'));
   this.document.getElementById("uploadForm").submit = true;
   alert("After Submit");
   return false;
}

サーバーコントローラー:

@Controller
@PreAuthorize("isAuthenticated()")
@RequestMapping("/assay/designability")
@SessionAttributes({"assayAssessmentsInitializersBean","assayAssessmentsRequestsDetailsBean"})
public class AssayDesignabilityController extends AssayBaseController {

    @RequestMapping(value = "/uploadFile",method= RequestMethod.GET)
    public String uploadFile(@RequestParam(value = "file")Object file){
        MultipartFile multipartFile=(MultipartFile)file;

        logger.info(multipartFile.getName());
        return multipartFile.getName();
    }
}

これをすべて行うと、応答がナンセンスになり、デバッグしようとするとコントローラーメソッドに到達しません。何か助けて??

編集: コードを更新して送信しようとしましたが、同じ動作で応答がありません。

4

2 に答える 2