Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Не могу получить на сервере.
Там новый api
request.getParts()
...
getContentType дает false. А должен: multipart/form-data.
Вадя, ты этим api делал?
5 сен 19, 17:26    [21964822]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,
тут смотрел
https://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp-servlet
5 сен 19, 17:44    [21964839]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Ок.
До завтра буду изучать.
Хотя у меня не
<form action="upload" method="post" enctype="multipart/form-data">
<input type="text" name="description" />
<input type="file" name="file" />
<input type="submit" />
</form>
А руками в js
formData = new FormData()
....
Спс.
5 сен 19, 17:53    [21964843]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Зачем тут false везде в вебе в contenttype?
jQuery.ajax({
    url: 'php/upload.php',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    method: 'POST',
    type: 'POST', // For jQuery < 1.9
    success: function(data){
        alert(data);
    }
});
5 сен 19, 18:08    [21964854]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
[quote PetroNotC Sharp]Зачем тут false везде в вебе в contenttype?[/quoteхз
http://jquery.page2page.ru/index.php5/Ajax-запрос#.D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80_dataType
как бы если только очень хочется
5 сен 19, 20:50    [21964927]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

contentType:string('application/x-www-form-urlencoded')

При отправлении запроса на сервер, данные передаются в формате, указанном в contentType. По умолчанию
используется 'application/x-www-form-urlencoded', который подходит в большинстве случаев. Если указать этот
параметр явно, то он будет передан серверу (даже если туда не были отправлены никакие данные). Стоит
отметить, что данные всегда будут передаваться в кодировке UTF-8. Это стоит учитывать при обработке данных
на стороне сервера
.

но надо явно указать multipart/form-data
5 сен 19, 22:44    [21964975]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,

Не вышло.
Если ставить false (рекомендуют) то у меня ошибка выше описана.
Если ставить
contentType: "multipart/form-data",


То ошибка уже
https://stackoverflow.com/questions/36005436/the-request-was-rejected-because-no-multipart-boundary-was-found-in-springboot
6 сен 19, 14:13    [21965367]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
То есть по докам должно false и тогда хром сам разбирается.
Но у меня при отправке в логах тоже false и в сервлете получаю false.
Потом райзе.
Как в сервлете взять просто сырое все что пришло?
Счас тесты код выложу. Может кто попробует.
6 сен 19, 14:16    [21965372]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

а если через форм попробовать?

   <form action="UpLoad" method="POST" id="upl" enctype="multipart/form-data">
            <input type="file" name="fileName" />
            <input type="submit" />
    </form>


и типа такого
 protected void doPost(HttpServletRequest request, HttpServletResponse response) {


        try {

            Part filePart = request.getPart("fileName"); // Retrieves <input type="file" name="file">
            InputStream filecontent = filePart.getInputStream();

            byte[] buffer = new byte[filecontent.available()];
            filecontent.read(buffer);
            
            File targetFile = new File(......... + File.separator + request.getPart("fileName").getSubmittedFileName());

            try (OutputStream outStream = new FileOutputStream(targetFile)) {
                outStream.write(buffer);
                outStream.flush();
            }
             response.sendRedirect("/" ..............);
        } catch (IOException | ServletException ex) {
            Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
6 сен 19, 14:21    [21965378]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Тест с ошибкой.
- запуск, выбрать в эксплорере пару фоток и нажать кнопу отправить на сервер
- в сервлете райзе при доступе к ним (GlassFish)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="robots" content="noindex,nofollow" />
<meta name="viewport" content="width=device-width, ainitial-scale=1.0">

<SCRIPT src="<%= request.getContextPath() %>/js/vendor/jquery.min.js"></SCRIPT>
<SCRIPT src="./js/photo-upload.js"></SCRIPT>

<title>Редактор альбома</title>
</head>
<body>
<div>
	<p>Images</p>
	<input type="file" assept="image/png, image/jpeg" multiple />
	<input type="button" onclick="buttonClick()"; />
</div>
</body>
</html>
...... 
window.onload = function() {
	//------- check HTML5 file API----------- 
	if (window.File && window.FileReader && window.FileList && window.Blob){
		
	}
	else
	{
		alert('The File APIs HTML5 are not fully supported in this browser.');
	}
};

function buttonClick() {
	var files = $('input[type=file]')[0].files;
	if (!files) {alert('No selected files'); return;}
	var formdata = new FormData();
	for(var i=0; i<files.length; i++){
		formdata.append('image_'+i, files[i]);
	}
	
	$.ajax({
		 url: 'http://localhost:8080/photo-edit/uploads',
		 type: "POST",
		 enctype:"multipart/form-data",
		 data: formdata,
		 timeout: 2000,
		 contentType: false,
		 processData: false,
		 cache: false,
		 error: function(x, t, m){
			 alert("Error: " + t);
		 }	 
	 });
}
6 сен 19, 14:24    [21965380]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
а если через форм попробовать?
а как, если я в динамике в openDialog выделяю 500 фоток и отправляю на сервер.
6 сен 19, 14:26    [21965381]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
эксплорере пару фоток и нажать кнопу отправить на сервер
а по одной?
6 сен 19, 14:28    [21965383]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
а если через форм попробовать?
счас попробую, но это не мой юзкейс
6 сен 19, 14:28    [21965384]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
счас попробую, но это не мой юзкейс
это для диагностики
6 сен 19, 14:30    [21965385]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
PetroNotC Sharp
счас попробую, но это не мой юзкейс
это для диагностики
да. Сделаю конечно. Отпишусь.
6 сен 19, 14:37    [21965390]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Это третий кусок к тесту где у меня райзе. Сервлет.

package uploadfiles;

import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

@MultipartConfig
@WebServlet("/uploads")
public class UploadFiles extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public UploadFiles() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);

		System.out.println("----> Post request.getContentType(... "+ request.getContentType());	//Post request.getContentType(... false
		System.out.println("----> request.getContentLengthLong(... "+ request.getContentLengthLong()); //request.getContentLengthLong(... 1413

		//ServletInputStream stream = request.getInputStream();

		/* errrorrrr
		 * 
		 * 2019-09-05T17:56:49.347+0300|Warning: StandardWrapperValve[uploadfiles.UploadFiles]: Servlet.service() for servlet uploadfiles.UploadFiles threw exception
			javax.servlet.ServletException: The request content-type is not a multipart/form-data
			at org.apache.catalina.fileupload.Multipart.getParts(Multipart.java:172)
		 */
		Collection<Part> p = request.getParts();
		for(Part i : p){
			System.out.println("----> Post "+ p);	
		};
		
		
	}

}
6 сен 19, 14:49    [21965397]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Вадя, в твоем юз кейсе без райзе срабатывает это
Collection<Part> p = request.getParts();
Что дальше?
6 сен 19, 15:30    [21965417]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
И в заголовке ДЛЯ ОДНОГО ФАЙЛА пишется при форме
multipart/..... ;boundary=----3453e454e
6 сен 19, 15:32    [21965419]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Счас два фото в статике пробую.
6 сен 19, 15:34    [21965420]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
PetroNotC Sharp
Счас два фото в статике пробую.
ОК. Работает!!!
Вадя, значит дело не на бэке а на фронте.
Помогай!
6 сен 19, 15:37    [21965422]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,
вот так
        <form action="UpLoad" method="POST" id="upl" enctype="multipart/form-data">
            <input type="file" name="fileName" multiple="multiple" />
            <input type="submit" />
        </form>


 @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  {

        try {
         
            Collection<Part> p = request.getParts();
            p.forEach((Part _item) -> {
                try {

                    System.out.println("----> Post " + _item.getSubmittedFileName());
                    InputStream filecontent = _item.getInputStream();
                    //
                    byte[] buffer = new byte[filecontent.available()];
                    filecontent.read(buffer);
                    Files.createDirectories(Paths.get(Singleton.getPathToPic() + "excel"));
                    File targetFile = new File(Singleton.getPathToPic() + "excel" + File.separator + _item.getSubmittedFileName());
                    try (OutputStream outStream = new FileOutputStream(targetFile)) {
                        outStream.write(buffer);
                        outStream.flush();
                    }

                   

                } catch (IOException ex) {
                    Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
                }

            });
        } catch (IOException | ServletException ex) {
            Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        try {
            response.sendRedirect("/" + com.Singleton.PORTAL + "/page1.jsp");
        } catch (IOException ex) {
            Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


только это
Files.createDirectories(Paths.get(Singleton.getPathToPic() + "excel"));
FSingleton.getPathToPic() + "excel"
замени на своё
загружает множество файлов
томкат, хром
6 сен 19, 15:41    [21965425]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
Вадя, значит дело не на бэке а на фронте.
Помогай!
дай время
6 сен 19, 15:42    [21965426]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
вадя,

тебе с jquery?
6 сен 19, 15:45    [21965430]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
вадя,

тебе с jquery?
так меньше кода. Смотри у меня выше.
6 сен 19, 15:47    [21965432]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
PetroNotC Sharp
Вадя, значит дело не на бэке а на фронте.
Помогай!
дай время
не срочно. Хоть после выходных.
6 сен 19, 15:48    [21965433]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
jQuery приаттачил.
Тогда можно потестить без бэка и томката. Просто посмотреть отправку на F12 в фоксе.

К сообщению приложен файл (jquery.min.js - 54Kb) cкачать
6 сен 19, 15:56    [21965436]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,
вот получилось
+ фронт
 <form action="UpLoad" method="POST" id="upl" enctype="multipart/form-data">
            <input type="file" name="fileName" multiple="multiple" />
            <input type="submit" />
        </form>

        <script>
            // Описываем общие установки для всех ajax-запросов
//            https://pai-bx.com/wiki/js/1971-form-submit-file-jquery-ajax/
            $.ajaxSetup({
                url: 'UpLoad', // путь к обработчику
                type: 'POST', // метод передачи данных
                dataType: 'text', // тип ожидаемых данных в ответе
                beforeSend: function () { // Функция вызывается перед отправкой запроса
                    console.debug('Запрос отправлен. Ждите ответа.');
                    // тут можно, к примеру, начинать показ прелоадера, в общем, на ваше усмотрение
                },
                error: function (req, text, error) { // отслеживание ошибок во время выполнения ajax-запроса
                    console.error('Упс! Ошибочка: ' + text + ' | ' + error);
                },
                complete: function () { // функция вызывается по окончании запроса
                    console.debug('Запрос полностью завершен!');
                    // тут завершаем показ прелоадера, если вы его показывали
                }
            });
            $(function () {
                $('#upl').on('submit', function (e) {
                    e.preventDefault();
                    var $that = $(this),
                            formData = new FormData($that.get(0)); // создаем новый экземпляр объекта и передаем ему нашу форму (*)
                    $.ajax({
                        contentType: false, // важно - убираем форматирование данных по умолчанию
                        processData: false, // важно - убираем преобразование строк по умолчанию
                        data: formData,
                        success: function (json) {
                            console.log(json);
                            if (json) {
                                // тут что-то делаем с полученным результатом
                            }
                        }
                    });
                });
            });

        </script>



+ бэк
   @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  {

        try {            Collection<Part> p = request.getParts();
            p.forEach((Part _item) -> {
               PrintWriter out = null;
                try {

                    try {
                        
                        System.out.println("----> Post " + _item.getSubmittedFileName());
                        InputStream filecontent = _item.getInputStream();
                        //
                        byte[] buffer = new byte[filecontent.available()];
                        filecontent.read(buffer);
                        Files.createDirectories(Paths.get(Singleton.getPathToPic() + "excel"));
                        File targetFile = new File(Singleton.getPathToPic() + "excel" + File.separator + _item.getSubmittedFileName());
                        try (OutputStream outStream = new FileOutputStream(targetFile)) {
                            outStream.write(buffer);
                            outStream.flush();
                        }
                        
                        
                        
                    } catch (IOException ex) {
                        Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    out = response.getWriter();
                    out.print("000000000000000");
                    out.flush();

                   

                } catch (IOException ex) {
                    Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
                } finally {
                    out.close();
                }
            });
        } catch (IOException | ServletException ex) {
            Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        try {
            response.sendRedirect("/" + com.Singleton.PORTAL + "/page1.jsp");
        } catch (IOException ex) {
            Logger.getLogger(UpLoad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
6 сен 19, 16:39    [21965477]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
new FormData($that.get(0)); // создаем новый экземпляр объекта и передаем ему нашу форму (*)

Видел я этот вариант с конструктором но не пробовал.
Спасибо.
Теперь проверю в понедельник.
Отпишусь.
До связи!
6 сен 19, 16:50    [21965492]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Вот тут у меня сомнения.
У тебя сабмит формы и AJAX одновременно?
Я не могу выбрать или сабмит ИЛИ ajax без перерисовки.
9 сен 19, 12:52    [21966768]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
У тебя сабмит формы и AJAX одновременно?
Я не могу выбрать или сабмит ИЛИ ajax без перерисовки.
тут как бы смесь.
форма служит для загрузки, а отправка идёт по ajax
9 сен 19, 13:17    [21966796]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
Я не могу выбрать или сабмит ИЛИ ajax без перерисовки.
а что нужно получит в итоге?
9 сен 19, 13:18    [21966797]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
PetroNotC Sharp
Я не могу выбрать или сабмит ИЛИ ajax без перерисовки.
а что нужно получит в итоге?
думаю, можно ли не смешивать? Так как не понял твоего: "для загрузки".
У меня форма не нужна и все загружается так как AJAX (сабмита нету)
Если конечно глюк и так нельзя, тогда буду твой вариант.
Счас буду пробовать без смешивания.
9 сен 19, 13:51    [21966825]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,
вот тут без форм https://wp-kama.ru/id_9026/jquery-ajax-zagruzka-fajlov-na-server.html
9 сен 19, 13:54    [21966827]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

вот тут раскрыто фсё волшебство FormData
9 сен 19, 14:03    [21966842]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
PetroNotC Sharp,
вот тут без форм https://wp-kama.ru/id_9026/jquery-ajax-zagruzka-fajlov-na-server.html

Ну. А почему у меня выше не работает с пустым конструктором и без формы?
Глюки?
9 сен 19, 14:05    [21966844]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

насколько я смог найти разницу
у тебя
	for(var i=0; i<files.length; i++){
		formdata.append('image_'+i, files[i]);
	}


и по ссылке
// заполняем объект данных файлами в подходящем для отправки формате
	$.each( files, function( key, value ){
		data.append( key, value );
	});

	// добавим переменную для идентификации запроса
	data.append( 'my_file_upload', 1 );
9 сен 19, 14:13    [21966852]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Цикл один и тот же.
А my_file_upload счас попробую.
9 сен 19, 14:17    [21966857]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
data.append( 'my_file_upload', 1 );
не. Это не повлияло.
Без формы в конструкторе не работает.
Буду добавлять.
9 сен 19, 14:22    [21966863]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,
тут
<input type="button" onclick="buttonClick()"; />
ошибка
9 сен 19, 14:22    [21966864]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
PetroNotC Sharp,
тут
<input type="button" onclick="buttonClick()"; />
ошибка
исправил. Хотя событие работало. Я отладчике смотрел.
И не ругалось))))
Вот такой js странный ЯП))
9 сен 19, 14:26    [21966870]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
исправил. Хотя событие работало. Я отладчике смотрел.
И не ругалось))))
Вот такой js странный ЯП))

у меня IDE ругалось
твой вариант работает, но jquery вылетает с timeout
9 сен 19, 14:36    [21966879]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
вадя
твой вариант работает, но jquery вылетает с timeout
не работает.....
9 сен 19, 14:43    [21966897]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
IDE
у меня голый без плагинов иклипсе. Пропускает.
И потом отладчик фокса тоже молчал в консоли)
...
Почему то у меня не работает подписка на сабмит
$('#form-withdraw').submit(function(event) {
...
Надо код вынести из html
9 сен 19, 14:44    [21966900]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Схема такая
- сабмит в форме
- собыие в js файле и там добавка 500 фоток в formData(form
9 сен 19, 14:45    [21966902]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
PetroNotC Sharp
Почему то у меня не работает подписка на сабмит
$('#form-withdraw').submit(function(event) {
решено))
Асинхронная загрузка и я не поставил onLoad событие снаружи
9 сен 19, 14:53    [21966918]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

ещё ошибка
<input type="file" assept="image/png, image/jpeg" multiple />

accept
9 сен 19, 15:17    [21966953]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
accept
исправил.
...
Передал форму в конструктор. Не стало фоток в отправке на f12 в фоксе.
Счас попробую твой код.
9 сен 19, 15:24    [21966958]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
Это мой текущий нерабочий

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<SCRIPT src="./js/vendor/jquery.min.js"></SCRIPT>
<SCRIPT src="./js/photo-upload.js"></SCRIPT>
</head>
<body>

<form action="http://localhost:8080/photo-edit/uploads" method="POST" id="id-form" named="formMain" enctype="multipart/form-data">
	<input type="file" accept="image/png, image/jpeg" multiple />
	<input type="submit" />
</form>

</body>
</html>

// JS
window.onload = function() {

$("form").submit(function(event){
	var form = $('form').get(0);
	if (!form) {alert('No selected form'); return;}
	var files = $('input[type=file]')[0].files;
	if (!files) {alert('No selected files'); return;}
	var formdata = new FormData(form);
	for(var i=0; i<files.length; i++)
		formdata.append('image_'+i, files[i]);
	
	$.ajax({
		 url: 'http://localhost:8080/photo-edit/uploads',
		 type: "POST",
		 data: formdata,
		 timeout: 2000,
		 contentType: "multipart/form-data",
		 processData: false,
		 cache: false,
		 error: function(x, t, m){
			 alert("Error: " + t);
		 }	 
	 });
});	

};
9 сен 19, 15:31    [21966966]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

вот такой работает

<input type="file" accept="image/jpeg" multiple="multiple" />
<input type="button" onclick="buttonClick();" value="00000000000"/>



<script>
function buttonClick() {
var files = $('input[type=file]')[0].files;
if (!files) {
alert('No selected files');
return;
}
var formdata = new FormData();
for (var i = 0; i < files.length; i++) {
formdata.append('image_' + i, files[i]);
}


$.ajax({
url: 'UpLoad',
type: "POST",
enctype: "multipart/form-data",
data: formdata,
contentType: false, // важно - убираем форматирование данных по умолчанию
processData: false, // важно - убираем преобразование строк по умолчанию
dataType: 'text', // тип ожидаемых данных в ответе
success: function (json) {
console.log(json);
}

});
}

</script>[/SRC]
9 сен 19, 15:39    [21966985]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

а куда стока фоток?
есть код позволяющий кадрировать/поворачивать/нормолизовать поразмеру/ делать превьюшки
9 сен 19, 15:42    [21966991]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
function buttonClick() {
var files = $('input[type=file]')[0].files;
if (!files) {
alert('No selected files');
return;
}
var formdata = new FormData();
for (var i = 0; i < files.length; i++) {
formdata.append('image_' + i, files[i]);
}


$.ajax({
url: 'UpLoad',
type: "POST",
enctype: "multipart/form-data",
data: formdata,
contentType: false, // важно - убираем форматирование данных по умолчанию
processData: false, // важно - убираем преобразование строк по умолчанию
dataType: 'text', // тип ожидаемых данных в ответе
success: function (json) {
console.log(json);
}


Ну у меня жеж тоже самое. Счас найду заразу)))
9 сен 19, 15:46    [21966998]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
есть код позволяющий
этот пример добъем и посмотрим потестим твою либу.
9 сен 19, 15:48    [21967000]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
Ну у меня жеж тоже самое. Счас найду заразу)))
вот в этом и есть фишка :)
9 сен 19, 15:50    [21967004]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
PetroNotC Sharp
Ну у меня жеж тоже самое. Счас найду заразу)))
вот в этом и есть фишка :)
)))))
Ух хитрец)).
Не хватало в HTML тега name="........
Ну js как всегда молчит и не делает.
Работает.
Спасибо.
...
Вадя, если у тебя либа с исходниками типа на хабре то на след. неделе напишу. Потестим, попробуем.
Это проект не публичный, поэтому бонусов никаких.
9 сен 19, 16:35    [21967058]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
Вадя, если у тебя либа с исходниками типа на хабре то на след. неделе напишу. Потестим, попробуем.
я уже выкладывал
https://jonhappy.github.io/modal_menu/
там дамонстрашка некоторых возможностей
нажать на кнопку xxxx, открывается модальное окно
в нижней части зелёный плюсик - открывается новая вкладка - ну там...
https://github.com/JonHappy/JonHappy.github.io описание
под конкретные нужды сделаю
9 сен 19, 16:55    [21967079]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
описание

А нет как нибудь обособленно чтобы не путалось в проекте?
То есть в одной папке Все исходники? Как jQuery?
..
Это фотографы в командировке скидывают с флешки на планшет.
Потом с планшета ужать до 1200x1200, повернуть по exif, превью 75х75 и залить на мой сервак.
Типа фотоальбома.
Показ уже есть. Нужна заливка.
Кадрирование вторым этапом.
9 сен 19, 17:10    [21967088]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,
сама страница где обрабатываются картинки https://github.com/JonHappy/JonHappy.github.io/blob/master/modal_menu/pic.html
отдельный html.
там обрезается до размера полного просмотра 700*700
если надо обрезать до 1200*1200 - надо подумать. чтоб для кадрирования было на экране , а результат 1200*1200
и сделано как вызов для обработки . по сохранить передаётся в вызывающее окно.

тут одна из сложностей - получение превьюшки.
если даш более подробное тз попробую что-нить предложить
9 сен 19, 17:36    [21967119]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Не. Ты спутал кадрирование и разрешение.
1200 пикс. это макс разрешение по длинной стороне.
Так как кэнон делает слишком большое для профи))) 5000 пикселей.
Поэтому они без экрана должны ужиматься перед upload.
Пример, он в отпуске, пришел в отель. За 5 мин надо сбросить в облако и освободить флешку.
Редактор потом.
9 сен 19, 17:45    [21967128]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя
получение превьюшки.
в HTML5 нет на клиенте ужимание фоток?
9 сен 19, 17:46    [21967131]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
в HTML5 нет на клиенте ужимание фоток?
фотки не ужимаются, если надо уменьшить размер - jpg с потерей качества, или в формате webp
webp - хорошо жмет, и если задать качество 0.8 то потери качества на глаз не заметно, а размер файла значительно уменьшается.
это делается простым заданием коэффициента.


PetroNotC Sharp
Не. Ты спутал кадрирование и разрешение.
не , не спутал.
у меня сделано для того чтоб размещать в инет магазине фотки товара - а фотки бывают разные, их надо увеличить, повернуть и сделать так чтоб в 700*700(по длинной стороне ) был только товар и поменьше лишнего.

если только повернуть и уменьшить до 1200*1200 и 75*75, можно и без гуи , но это будет по одному файлу, и передача по очереди.
это реально. но уменьшение - это время.
но уменьшение до 1200 - это для последующего редактирования - это плохо.
нормальные фото для нормального редактирования - это формат RAW.
9 сен 19, 18:03    [21967152]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Давай не будем лезть к фотографам.
700 на 700 или 1200 на 1200 это ВХОДНОЙ ПАРАМЕТЕР В МЕТОД. И мне нужен jpeg.
Просто у кэнона дорогого нет такого низкого разрешения.
Есть такой метод?
Если долго на клиенте, то почему ты думаешь что 500 по 5000 dpi будет быстрее качать где нибудь на кипре в отеле?
9 сен 19, 18:13    [21967161]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Тестить надо сжатие и потом решать.
9 сен 19, 18:14    [21967163]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

если отречься от конечного результата
то можно сделать 1200*1200 без проблем, алгоритм уменьшения без потери качества отработан.

так- что можно, сделать.
9 сен 19, 18:17    [21967170]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

кроссбраузернсть? или только хром?
с хромом будет быстрее обработка
9 сен 19, 18:24    [21967174]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Чел просил с планшетом на хром. Мини там какой то вроде. Из гугл магазина.
9 сен 19, 18:38    [21967185]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp
Чел просил с планшетом на хром. Мини там какой то вроде. Из гугл магазина.
попробую, по срокам не могу сказать.
9 сен 19, 18:41    [21967187]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2148
вадя,
Сроки не важны. Я сам по шагам иду потихоньку.
9 сен 19, 18:43    [21967189]     Ответить | Цитировать Сообщить модератору
 Re: Upload files не выходит в GlassFish. Кто делал для servlet 3.0 c @MultipartConfig?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16731
PetroNotC Sharp,

мыло в доступе, можно там связываться
9 сен 19, 18:52    [21967199]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Java Ответить