App-Engine (Java) Загрузка файлов - PullRequest
14 голосов
/ 26 апреля 2010

Мне удалось загрузить файлы в App-Engine, используя следующий пример:

Как загрузить и сохранить изображение с помощью Google App Engine (Java)

и

Как загрузить фото в appengine java

Проблема в том, что я отправляю другие поля вместе с полями файла, как указано ниже:

<form action="index.jsp" method="post" enctype="multipart/form-data">
    <input name="name" type="text" value=""> <br/>
    <input name="imageField" type="file" size="30"> <br/>
    <input name="Submit" type="submit" value="Sumbit">
</form>

В моем сервлете я получаю нулевое значение при запросе

name = request.getParameter("name");

Почему это так? Есть ли способ получить значение текстового поля?

1 Ответ

9 голосов
/ 26 апреля 2010

Вы должны пройти через FileItemIterator. В приведенном выше примере обрабатывается только изображение (FileItemStream imageItm = iter.next();).

// From the example: /958452/kak-zagruzit-i-sohranit-izobrazhenie-s-pomoschy-google-app-engine-java
FileItemIterator iter = upload.getItemIterator(req);
// Parse the request
while (iter.hasNext()) {
    FileItemStream item = iter.next();
    String name = item.getFieldName();
    InputStream stream = item.openStream();
    if (item.isFormField()) {
        System.out.println("Form field " + name + " with value "
            + Streams.asString(stream) + " detected.");
    } else {
        // Image here.
        System.out.println("File field " + name + " with file name "
            + item.getName() + " detected.");
        // Process the input stream
        ...
    }
}

Подробнее см. http://www.jguru.com/faq/view.jsp?EID=1045507.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...