この記事では、参照用のサーブレットファイルのダウンロードの特定のコードを共有しています。特定のコンテンツは次のとおりです
ファイルディレクトリをユーザーに直接公開することは安全ではありません。したがって、サーブレットを使用する必要があり、このようにして、ファイルはより豊富に保存されます。ファイルシステムから取得したり、データベースの計算によって生成されたり、他の奇妙な場所から取得したりすることができます。
public class downloadServletはhttpservletを拡張します{private string contentType = "application/x-msdownload";プライベート文字列enc = "utf-8"; private string fileroot = ""; / ** * ContentType、enc、fileroot */ public void init(servletconfig config)servletexception {string tempstr = config.getInitParameter( "contentType"); if(tempstr!= null &&!tempstr.equals( "")){contentType = empstr; } tempstr = config.getInitParameter( "enc"); if(tempstr!= null &&!tempsstr.equals( "")){enc = tempstr; } tempstr = config.getInitParameter( "fileroot"); if(tempstr!= null &&!tempsstr.equals( "")){fileeroot = tempstr; }} Protected void doget(httpservletrequest request、httpservletresponse応答)servletexception、ioexception {string filepath = request.getParameter( "filepath");文字列fullfilepath = fileroot + filepath; /*ファイルを読む*/ファイル= new File(FullFilePath); /*fileが存在する場合*/ if(file.exists()){string filename = urlencoder.encode(file.getName()、enc); Response.reset(); Response.setContentType(contentType); Response.Addheader( "Content-Disposition"、 "Attachment; filename =/" " + filename +"/""); int filelength =(int)file.length(); Response.setContentLength(filelength); /*ファイルの長さが0より大きい場合*/ if(filelength!= 0){/*入力ストリームを作成*/ inputstream instream = new fileinputStream(file); byte [] buf = new byte [4096]; /*出力ストリームの作成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> <Servlet-Class> org.mstar.servlet.downloadservletservlet-class> <init-Name> filerootparam-name> <param-value> d:/tempparam-value> fileerootparam-value> init-param> <initparam <param-value> application/x-msdownloadparam-value> init-param> <init-mame> encparam-name> <param-value> utf-8param-value >>> init-param> servlet> <サーブレットマッピング> <サーブレット - ネーム> downloadservlet-name> <url-perthern>
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。