В этой статье используется конкретный код для загрузки файла сервиса для вашей ссылки. Конкретный контент заключается в следующем
Не безопасно разоблачить файл каталог непосредственно пользователю. Таким образом, вы должны использовать сервлеты, и таким образом файлы будут храниться более обильно. Они могут быть извлечены из файловой системы, сгенерированные расчетами в базе данных или извлечены из других странных мест.
Public Class DownloadServlet Extends httpservlet {private String contentType = "Application/x-msdownload"; Private String Enc = "UTF-8"; частная строка fileRoot = ""; / ** * Инициализировать ContentType, enc, fileRoot */ public void init (конфигурация ServletConfig). if (tempstr! = null &&! tempstr.equals ("")) {contentype = tempstr; } tempstr = config.getInitParameter ("enc"); if (tempstr! = null &&! tempstr.equals ("")) {enc = tempstr; } tempstr = config.getInitParameter ("fileRoot"); if (tempstr! = null &&! tempstr.equals ("")) {fileroot = tempstr; }} защищенный void Doget (httpservletrequest, httpservletresponse response) throws servletexception, ioexception {string filePath = request.getParameter ("filePath"); String fullfilePath = fileRoot + filePath; /*Читать файл*/ file file = new File (fullfilePath); /*Если файл существует*/ if (file.exists ()) {String filename = urlencoder.encode (file.getName (), enc); response.reset (); response.setContentType (ContentType); response.addheader ("Содержимое-распределение", "Приложение; filename =/" " + filename +"/""); int fileLength = (int) file.length (); response.setContentLength (fileLength); /*Если длина файла больше 0*/ if (filelength! = 0) {/*Создать входной поток*/ inputstream instream = new FileInputStream (file); Byte [] buf = новый байт [4096]; /*Создать выходной поток*/ servletoutputstream servletos = response.getOutputStream (); int Readlength; while ((((readlength = instream.read (buf))! = -1)) {servletos.write (buf, 0, readlength); } instream.close (); servletos.flush (); servletos.close (); }}} web.xml
<servlet> <servlet-name> downloadServlet-name> <vervlet-class> org.mstar.servlet.downloadservletservlet-class> <init-param> <param-name> filerootparam-name> <param-value> d:/tempparam-value> init-param> <initparam> <param-name> d:/tempparam-value> init-param> <initparam> <param-name> d:/tempparam> init-param> <param-value>application/x-msdownloadparam-value>init-param> <init-param> <param-name>encparam-name> <param-value>utf-8param-value>>> init-param> servlet> <servlet-mapping> <servlet-name>downloadservlet-name> <url-pattern>/downurl-pattern> servlet-mapping>
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.