リダイレクトはspringbootコントローラで動作していません

カルメンSirgo:

私は、画像をアップロードして、このアプリケーションで作業をしないだけで、リダイレクトされ、フォームを作るためにはJavaScriptを使用して、私がイメージをアップロードするためのより良い方法を発見していないと私はそれをデータベースに保存したいのです。私は仕事へのリダイレクトを必要とします。

ここでは、HTMLコード(私はthymeleafからオブジェクトの出版物を使用していない)です。

<form id="singleUploadForm" name="singleUploadForm" class="form-horizontal" th:object="${publication}">
...
<div class="form-group">
    <label class="control-label col-sm-2" for="text"
    th:text="#{publication.image}">Imagen (opcional):</label>
        <div class="col-sm-10">
            <input id="singleFileUploadInput" type="file" class="form-control" name="image"/>
        </div>
</div>
<div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
        <button type="submit" class="btn btn-primary" th:text="#{send}">Enviar</button>
    </div>
</div>
</form>

そして、ここでそれは私のJavascriptのコードは次のとおりです。

'use strict';

var singleUploadForm = document.querySelector('#singleUploadForm');
var singleFileUploadInput = document.querySelector('#singleFileUploadInput');
var titleInput = document.querySelector('#titleInput');
var textInput = document.querySelector('#textInput');

function uploadSingleFile(file, text, title) {
    var formData = new FormData();
    formData.append("file", file);
    formData.append("text", text);
    formData.append("title", title);

    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/uploadFile");

    xhr.onload = function() {
        //console.log(xhr.responseText);
    }

    xhr.send(formData);
    console.log("DONE1");
}

singleUploadForm.addEventListener('submit', function(event){
    var files = singleFileUploadInput.files;
    var text = textInput.value;
    var title = titleInput.value;
    if(files.length === 0) {
        uploadSingleFile(null, text, title);
    }
    else {
        uploadSingleFile(files[0], text, title);
        //event.preventDefault();
        console.log("DONE2");
    }
    console.log("DONE3");
}, true);

また、コントローラ:

@RequestMapping(value = "/uploadFile")
public String uploadFile(Principal principal, @RequestParam(value = "file", required=false) MultipartFile image,
        @RequestParam("text") String text, @RequestParam("title") String title) {
    Publication publication = new Publication();

    if (image != null) {
        DBFile dbFile = storageService.storeFile(image);
        publication.setImage(dbFile);
    }

    User user = usersService.getUserByEmail(principal.getName());

    publication.setUser(user);
    publication.setDate(new Date());
    publication.setText(text);
    publication.setTitle(title);

    publicationsService.addPublication(publication);

    return "redirect:/publication/list";
}

デ番目に画像を追加するにはどのような方法がある場合:オブジェクトは=「{$出版物は}」私はそれが問題を解決するだろうと思うが、私はそれをしようとしたとき、私は常にnullファイルを受け取りました。私は、画像を保存するために文字列を使用している場合は、私が名前を正しく受け取るが、私は、任意の形式でデータを取得することができませんでした。

エイリアン:

何を期待していることは実際には正しくありません。

Ajax呼び出し、戻りJSONコントローラーからの応答とコントローラによって返された応答に基づいて、あなたのjavascriptのコード内の特定のURLにリダイレクトすることができるため。参照してくださいAjaxの春をリダイレクトする方法

window.location.href = 'http://www.google.com'; //Will take you to Google.

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=284354&siteId=1