Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2019, 10:56   #1
Alexmur07
Форумчанин
 
Регистрация: 20.11.2008
Сообщений: 121
По умолчанию Не получается отправить файл на сервлет

есть сервлет /upload

там метод допост
Код:
 @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        final String UPLOAD_DIRECTORY = "d:/uploads";
        if(ServletFileUpload.isMultipartContent(req)){
            try {
                List<FileItem> multiparts = new ServletFileUpload(
                        new DiskFileItemFactory()).parseRequest(req);
                System.out.println(multiparts.size());
                for(FileItem item : multiparts){
                    System.out.println(item);
                    if(!item.isFormField()){
//                        File fileSaveDir = new File(UPLOAD_DIRECTORY);
//                        if (!fileSaveDir.exists()) {
//                            fileSaveDir.mkdir();
//                        }
                        String name = new File(item.getName()).getName();
                        System.out.println(name);
//                        item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
                        Photo photo = ServiceAddObjects.getInstance().addPhoto(new File(item.getName()));
                        System.out.println(photo);
                    }
                }
            } catch (Exception e) {
                // exception handling
            }

            PrintWriter out = resp.getWriter();
            out.print("{\"status\":1}");
        }

    }
и есть форма в jsp
Код:
<form id="sampleUploadFrm" action="#" method="post" enctype="multipart/form-data">
    <input id="descfile" type="text" name="description" />
    <input id="fileimg" type="file" name="file"/>
    <input type="button" id="uploadBtn" onclick="fileupload()" value="Upload"/>
</form>
и скрипт для отпарвки файла на севлет
Код:
//загрузка файлов на сервлет
function fileupload() {
    var url = "./upload";
    var form = $("#sampleUploadFrm")[0];
    var data = new FormData(form);
    $.ajax({
        type: "POST",
        encType: "multipart/form-data",
        url: url,
        cache: false,
        processData: false,
        contentType: false,
        data: data,
        success: function (msg) {
            console.log(msg);
            var status = msg.status;
            if (status == 1) {
                alert("File has been uploaded successfully");
            } else {
                alert("Couldn't upload file");
            }
        },
        error : function(msg) {
            alert("Couldn't upload file");
        }
    });
};
скрипт срабатывает но на сервлет ничего не приходит
строка System.out.println(multiparts.size( )); показывает размер 0 типо ничего не пришло в массив вопрос: почему? подскажите что я не так сделал в чём ошибка?
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения.
Alexmur07 вне форума Ответить с цитированием
Старый 03.07.2019, 20:02   #2
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Наверное, вместо
Код:
List<FileItem> multiparts = new ServletFileUpload(
                        new DiskFileItemFactory()).parseRequest(req);
должно быть
Код:
List<FileItem> multiparts = new ServletFileUpload(
                        new DiskFileItemFactory()).parseRequest(new ServletRequestContext(req));
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправить файл на сервер Хоттабич C/C++ Сетевое программирование 4 03.03.2012 17:07
INDY Post, не получается отправить все параметры dlauser Работа с сетью в Delphi 3 11.01.2011 11:44
как отправить файл? RUSlan48 Работа с сетью в Delphi 6 29.03.2010 21:41
Не получается отправить сообщение на сервер zver777 Работа с сетью в Delphi 8 26.10.2009 22:42
Отправить файл по icq mustang007 Работа с сетью в Delphi 0 09.08.2009 14:36