2016-01-25 2 views
1

Я использую работу Spring Frame 3.05, и мне нужны файлы для загрузки с использованием той же структуры. После поиска в google я нашел ответ в этой переполненной ссылке стека.Загрузка файла из весенних контроллеров NotSerializableException

Downloading a file from spring controllers

в приведенной выше ссылке -> Скотт Карлсон - Ответ

Но если я пытаюсь сделать, как предложено в приведенной выше ссылке. Я получаю следующую ошибку:

"Ошибка при записи в выходной поток из-за: java.io.NotSerializableException: org.springframework.core.io.FileSystemResource"

Мой код выглядит следующим образом:

FileSystemResource fsr = new FileSystemResource(path);   

    try 
    { 

     OutputStream outstr = res.getOutputStream(); 
     ObjectOutputStream oos = new ObjectOutputStream(outstr); 
     oos.writeObject(fsr); 
     oos.flush(); 
     oos.close(); 
    } 
    catch(Exception e) 
    { 
     log4log.error("Error while writing to output stream due to :"+e.toString()); 
     return null; 
    } 

Пожалуйста, помогите мне ...

+0

вы не можете сериализовать Stream theelb. Вы должны прочитать данные из strem, а затем можете его сериализовать. – Jens

+0

Ответ Скотта Карлсона вовсе не делает то, что вы делаете в своем коде. Просто прочитайте его снова. –

ответ

1

То, что вы хотите сделать, это скопировать содержимое вашего FileSystemResource в ответ-х Outputstream:

InputStream in = fsr.getInputStream(); 
OutputStream out = response.getOutputStream(); 
org.apache.commons.io.IOUtils.copy(in, out); 

Что вы пытались сделать в своем коде, на самом деле пытается получить serialize an object в выходной поток отклика.

+0

Благодарим вас, его работа сейчас ... –

+0

Загрузка файла изображения в браузере. Но когда я пытаюсь загрузить сервер nodejs, его получение повреждено. Размер файла для скачивания файла равно 1,8 Мб, установленный в 1 Мб. Как это решить ... –