|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你对java乐观有点盲目。java的关键就是在服务器上表现优异,而且它提供了整个开发所需要的工具。应该是说,看哪天。net有没有机会赶上java。js|下载<Pstyle="TEXT-INDENT:2em">1.最间接最复杂的,体例是把文件地点间接放到html页面的一个链接中。如许做的弱点是把文件在服务器上的路径表露了,而且还没法对文件下载举行别的的把持(如权限)。这个就不写示例了。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2.在服务器端把文件转换成输入流,写进到response,以response把文件带到扫瞄器,由扫瞄器来提醒用户是不是乐意保留文件到当地。(示比方下)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">- <%response.setContentType(fileminitype);response.setHeader("Location",filename);response.setHeader("Cache-Control","max-age="+cacheTime);//filename应当是编码后的(utf-8)response.setHeader("Content-Disposition","attachment;filename="+filename);response.setContentLength(filelength);OutputStreamoutputStream=response.getOutputStream();InputStreaminputStream=newFileInputStream(filepath);byte[]buffer=newbyte[1024];inti=-1;while((i=inputStream.read(buffer))!=-1){outputStream.write(buffer,0,i);}outputStream.flush();outputStream.close();inputStream.close();outputStream=null;%>
复制代码 <Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3.既然是JSP的话,另有一种体例就是用Applet来完成文件的下载。不外客户起首得信托你的这个Applet小程序,由这个程序来承受由servlet发送来的数据流,并写进到当地。<Pstyle="TEXT-INDENT:2em">servlet端示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">- publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{res.setContentType("text/plain");OutputStreamoutputStream=null;try{outputStream=res.getOutputStream();//把文件路径为srcFile的文件写进outputStream中popFile(srcFile,outputStream));}catch(IOExceptione){e.printStackTrace();}}
复制代码 <Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">JApplet端示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">- URLConnectioncon;try{//url是被挪用的SERVLET的网址如*.docon=url.openConnection();con.setUseCaches(false);con.setDoInput(true);con.setDoOutput(true);con.setRequestProperty("Content-Type","application/octet-stream");InputStreamin=con.getInputStream();ProgressMonitorInputStreampmInputStream=newProgressMonitorInputStream(pane,"正在从服务器下载文件内容",in);ProgressMonitorpMonitor=pmInputStream.getProgressMonitor();pMonitor.setMillisToDecideToPopup(3);pMonitor.setMillisToPopup(3);//localfilepath当地路径,localstr文件文件夹,filename当地文件名Stringlocalfilepath=localstr+filename;//办法saveFilsaveFilee是把输出流pmInputStream写到文件localfilepath中if(saveFilsaveFilee(localfilepath,pmInputStream)){ openLocalFile(localfilepath);}
复制代码 <Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">4.特地把JApplet上传文件的代码也贴下去.<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">JApplet端示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">- URLConnectioncon;try{con=url.openConnection();//url是被挪用的SERVLET的网址如*.do con.setUseCaches(false);con.setDoInput(true);con.setDoOutput(true);con.setRequestProperty("Content-Type","application/octet-stream");OutputStreamout=con.getOutputStream();//localfilepath当地路径,localstr文件文件夹,filename当地文件名Stringlocalfilepath=localstr+filename;//文件getOutputStream是把文件localfilepath写到输入流out中getOutputStream(localfilepath,out);InputStreamin=con.getInputStream();returntrue;}catch(IOExceptione){System.out.println("文件上传堕落!");e.printStackTrace();}
复制代码 <Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">servlet端代码示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">- publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{res.setContentType("text/plain");InputStreaminputStream=null;try{inputStream=res.getInputStream();//把输出流inputStream保留到文件路径为srcFile的文件中writefile(srcFile,inputStream);}catch(IOExceptione){e.printStackTrace();}}//endservice
复制代码 <Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">总结:在文件的传输中是流的情势存在的,在硬盘上是文件的情势存在的。我们要做的只是经由过程HttpServletRequest和HttpServletResponse,大概是response和request来发送流和读取流。和把文件转换成流或把流转换成文件的操纵。
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译) |
|