Залить картинку на фтп?

Я создаю приложение, и у меня есть изображение моих клиентов. Как я могу получить это изображение и загрузить на ftp?

Читая книгу vaadin7 в главе «Загрузка», я сделал пример, но он не работал, и я также ищу, как отправить это изображение на ftp.

Я попробовал это.

  /** My UI */
    //foto 
    Image picture = new Image();
    picture.setWidth("128px");
    picture.setHeight("128px");     
    mainLayout.addComponent(foto);

    //upload image picture
    ImageUpload imageUp = new ImageUpload(picture);
    Upload upload = new Upload();
    upload.setCaption("Find your picture");
    upload.setButtonCaption("Send");        
    upload.addSucceededListener(imageUp);
    mainLayout.addComponent(upload);


    /** class upload image picture */
    public class ImageUpload implements Receiver, SucceededListener{
        private File file;
        private Image image;    

    public ImageUpload(Image image){
        this.image = image;
        this.image.setVisible(false);
    }

    @Override
    public void uploadSucceeded(SucceededEvent event) {
        this.image.setVisible(true);
        this.image.setSource(new FileResource(file));
    }

    @Override
    public OutputStream receiveUpload(String filename, String mimeType) {
        FileOutputStream fos = null;
        try{
            file = new File("/tmp/" + filename);            
            fos = new FileOutputStream(file);           
        }catch(final java.io.FileNotFoundException ex){
            new Notification("File not found \n", 
                             ex.getLocalizedMessage(), 
                             Notification.Type.ERROR_MESSAGE)
                             .show(Page.getCurrent());
        }
        return fos;

    }
}

Есть идеи ?

спасибо


person FernandoPaiva    schedule 05.12.2013    source источник
comment
Возможно, это поможет: stackoverflow.com/questions /11739153/   -  person drew_w    schedule 05.12.2013
comment
поделитесь более подробной информацией, что не сработало. Для уточнения: вы хотите загрузить изображение на ftp-сервер после того, как изображение было загружено на сервер веб-приложения?   -  person nexus    schedule 06.12.2013
comment
@nexus, Когда клиент выбирает вашу фотографию вместо того, чтобы вставить ее в мою базу данных, я думаю, что лучше всего отправить свою фотографию на ftp, а в мою базу данных вставить только ее имя и отправить вашу фотографию на вашу электронную почту.   -  person FernandoPaiva    schedule 06.12.2013
comment
Мне просто интересно: вам действительно нужен ftp-сервер? Ваша база данных находится на том же компьютере, что и ваш веб-сервер? Если да, то действительно ли вам нужен ftp-сервер?   -  person nexus    schedule 06.12.2013
comment
@nexus Мне нужна эта работа, по ftp или другим способом. Я не хочу вставлять изображение клиента в свою базу данных. Если я загружу изображение на свой веб-сервер по пути /home/myapp/images, что вы думаете?   -  person FernandoPaiva    schedule 06.12.2013
comment
Я бы загрузил его в каталог веб-приложения, где вы можете сохранить все файлы, принадлежащие вашему приложению.   -  person nexus    schedule 06.12.2013
comment
Я попробую это. Вы знаете, как проверить расширение при загрузке, например, только .jpg? еще раз, спасибо!   -  person FernandoPaiva    schedule 06.12.2013


Ответы (1)


Чтобы дать ответ по нашей беседе в комментариях:

Загрузите изображение в папку на сервере, используя компонент загрузки от Vaadin, как вы это делали.

Вы знаете, как проверить расширение при загрузке, например, только .jpg?

Вы могли

  1. быстро и грязно: просто проверьте, заканчивается ли имя файла на .jpg
  2. Определить MIME-тип загруженного файла
  3. выполните 1. и 2 (отклоните загрузку, если файл не заканчивается на .jpg, в противном случае разрешите загрузку и перепроверьте загруженный файл с его MIME-типом)
person nexus    schedule 06.12.2013