Как в <input type=“file”/> отправить пустой файл

242
14 мая 2017, 22:07

Есть код:

<input id="textMessage" type="text" placeholder="текст сообщения" autofocus>
<input type="file" id="imgMessage"/>
<button onclick="SendMessage()">отправить</button>

...

        var SendMessage = function () {
            var text = $("#textMessage").val();
            var img = $("#imgMessage")[0].files[0];
            var data = new FormData();
            if (text != "") {
                data.append("myText", text);
            } else {
                data.append("myText", "");
            }
            if (img != null) {
                data.append("myIMG", img);
            } else {
                data.append("myIMG", ???);
            }
            $.ajax({
                type: "POST",
                url: "<c:url value="/add/message"/>",
                data: data,
                processData: false,
                contentType: false,
                beforeSend: BeforeSendMessage,
                success: SuccessSendMessage,
                error: funkError
            })
        };

Возможен случай отправки сообщения без текста, только файл, тогда в коде jquery в if/else пишем data.append("myText", "");. Как сделать подобное для поля <input type="file", в случае отправки только текста, без файла, т.е. что указать для атрибута data.append("myIMG",???); , null контроллер не принимает.

Код метода контроллера:

    @RequestMapping(value = "/add/message", method = RequestMethod.POST)
    public void addMessage(HttpServletResponse response,
                           @RequestParam(value = "myText") String txt,
                           @RequestParam(value = "myIMG") MultipartFile file) {
        byte[] img = null;
        try {
            img = file.getBytes();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Message message = new Message();
        message.setText(txt);
        message.setImg(img);
        serviceMessage.add(message);
    }
Answer 1
@RequestParam(value = "myIMG") MultipartFile file
@RequestParam(value = "myIMG", required = false) MultipartFile file
READ ALSO
Почему не удается сместить таблицу вниз?

Почему не удается сместить таблицу вниз?

Здравствуйте, не удается сместить таблицу вниз, на 30 px Margin и padding не срабатываетРечь идет о проблеме при заходе с мобильного в горизонтальном...

295
Как сделать сайт на wordpress на 3-х языка?

Как сделать сайт на wordpress на 3-х языка?

Нужно сделать сайт-портфолио на трёх языкахИ интегрировать на WordPress

290
Написать функцию SJ

Написать функцию SJ

Написать функцию, которая будет принимать в себя два аргумента - elem(HTMLElement) и styleObject(object со стилями)после вызова функции, объекту elem должны...

252