Я хотел скачать файл по ссылке - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть сервлет, который загружает файл из указанного места.В настоящее время мой URL-адрес http://localhost:8080/DownloadFromservlet/download?file=c://tmp/DownloadFileServlet.pdf, и он должен выглядеть так: http://localhost:8080/fileserver/download?file=c:/tmp/DownloadFileServlet.pdf

Мне нужно заменить DownloadFromservlet на файловый сервер.Вот мой код

@WebServlet("/download")
public class download extends HttpServlet {
  private static final long serialVersionUID = 1L;


  protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String sourceFile = request.getParameter("file");
    sourceFile = sourceFile != null ? sourceFile.trim() : "";
    File fo = null;

    if (sourceFile.length() > 0)

        fo = new File(sourceFile);

    response.setContentType("application/octet-stream");
    ServletOutputStream servletOutputStream = response.getOutputStream();
    BufferedInputStream bufferedInoutStream = new BufferedInputStream(new FileInputStream(fo));
    byte[] buffer = new byte[8192];
    int bytesRead = 0;
    // ;
    while (bytesRead != -1) {
        bytesRead = bufferedInoutStream.read(buffer);
        servletOutputStream.write(buffer);
    }
    servletOutputStream.flush();

    if (servletOutputStream != null) {
        try {
            servletOutputStream.close();
        } catch (Throwable tx) {
        }
    }

    if (bufferedInoutStream != null) {
        try {
            bufferedInoutStream.close();
        } catch (Throwable tx) {
        }
    }
  }

}

Не могли бы вы помочь мне, как я могу изменить его?

...