如何实现打开文件、但不让用户保存? 在我们的JAVA WEB系统里有一些重要文件,可以让用户打开,但不能让用户保存和打印。现在我通过一个超链接可以实现用户打开文件,但打开文件之前IE都有一个对话框,让用户选择是打开、保存、取消。如果这样子的话用户就可以保存此文件了,大家有什么好方法可以做到我上述的功能?如swing, javascript或其它方面的? PS:本人只会java WEB的编程。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LZ你说的可以保存是下载文件把.? 如果你要求用户可以打开文件但是不可以保存的话,你就不应该做到文件下载那里去.! 你应该直接在servlet里面读文件,然后返回给用户的只是文件的内容,而不是流 public class ReadFileServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { System.out.println("--------------ReadFileServlet---"); String filename = "abc.doc"; String filepath = "\\oa\\upload\\package_method\\"; // 设置响应头和下载保存的文件名 response.setContentType("APPLICATION/msword"); response.setHeader("Content-Disposition", "inline"); // 打开指定文件的流信息 File f = new File("D:\\jsp\\oa\\upload\\package_method\\abc.doc"); java.io.FileInputStream fileIn = new java.io.FileInputStream(f); // 写出流信息 int i; ServletOutputStream sos = response.getOutputStream(); int i_length = fileIn.available(); byte buf_1[] = new byte[i_length]; while (i_length > 0) { fileIn.read(buf_1); sos.write(buf_1); i_length = fileIn.available(); } sos.close(); fileIn.close(); }}我用servlet来做,在显示之前IE还是弹出一个对话框,来让用户选择保存,打开和取消的操作。 楼主完全不用搞一个下载的组件啦,就用java操作DOC文件就可以了啦,点击链接的时候去读取一个doc文件,然后把读取到的数据显示到界面,只不过这里要熟悉java怎么操作doc了,只是给点建议,技术方面可以百度下去实现,不难的 web应用,能看到就能打印,所以这种需求一般来说意义不大,因为最简单方法我截屏,然后打印,你怎么办? 如果你使用下载方式输出文件流是不能避免“打开”“保存”提示的。如果使用控件(AxtiveX)可以做到仅打开(具体方案请自行查找你提供文件的类型对应方案)。 //禁止右键 document.body.oncontextmenu=function(oEvent){ if(document.all){ oEvent=window.event; oEvent.returnValue=false; }else{ oEvent.preventDefault(); } } 但那些重要不但只是DOC文件,还有Excel和PDF的,那PDF怎么办呢?里面很多图片和格式的。 我现在网页中内嵌PDF的方法显示PDF,但PDF有“另存为”按钮,于是我想用一个图片把这个按钮遮住,这个图片就相当于悬浮广告的效果,这个效果的代码我是网上摘用的,结果是这个图片在这个PDF文件的后面,起不了遮住按钮的作用。大家帮我看看怎么才能把这个图片显示在上面???<html> <head>标题</head> <body> <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0"> <param name="_Version" value="65539"> <param name="_ExtentX" value="20108"> <param name="_ExtentY" value="10866"> <param name="_StockProps" value="0"> <param name="SRC" value="1.pdf"> </object> </body></html><script>var brOK=false;var mie=false;var vmin=2;var vmax=5;var vr=1;var timer1;var softhyads;var isflash=0; //是否为FLASH文件的漂浮 1=是 0=否var pic="google.gif"; //图片的地址var alt="谷歌Google广告"; //鼠标放在图片上时显示的提示文字var url="http://www.google.com"; //图片链接的地址var flashurl="http://"; //FLASH文件的路径var Wimg=170; //图像的宽度var Himg=65; //图像的高度function movechip(chipname){ if(brOK) { eval("chip="+chipname); if(!mie) { pageX=window.pageXOffset; pageW=window.innerWidth; pageY=window.pageYOffset; pageH=window.innerHeight; } else { pageX=window.document.body.scrollLeft; pageW=window.document.body.offsetWidth-8; pageY=window.document.body.scrollTop; pageH=window.document.body.offsetHeight; } chip.xx=chip.xx+chip.vx; chip.yy=chip.yy+chip.vy; chip.vx+=vr*(Math.random()-0.5); chip.vy+=vr*(Math.random()-0.5); if(chip.vx>(vmax+vmin)) chip.vx=(vmax+vmin)*2-chip.vx; if(chip.vx<(-vmax-vmin)) chip.vx=(-vmax-vmin)*2-chip.vx; if(chip.vy>(vmax+vmin)) chip.vy=(vmax+vmin)*2-chip.vy; if(chip.vy<(-vmax-vmin)) chip.vy=(-vmax-vmin)*2-chip.vy; if(chip.xx<=pageX) { chip.xx=pageX; chip.vx=vmin+vmax*Math.random(); } if(chip.xx>=pageX+pageW-chip.w) { chip.xx=pageX+pageW-chip.w; chip.vx=-vmin-vmax*Math.random(); } if(chip.xx>=680) { chip.xx=chip.xx-20; chip.vx=-vmin-vmax*Math.random(); } if(chip.yy<=pageY) { chip.yy=pageY; chip.vy=vmin+vmax*Math.random(); } if(chip.yy>=pageY+pageH-chip.h) { chip.yy=pageY+pageH-chip.h; chip.vy=-vmin-vmax*Math.random(); } if(!mie) { eval('document.'+chip.named+'.top ='+chip.yy); eval('document.'+chip.named+'.left='+chip.xx); } else { eval('document.all.'+chip.named+'.style.pixelLeft='+chip.xx); eval('document.all.'+chip.named+'.style.pixelTop ='+chip.yy); } //chip.timer1=setTimeout("movechip('"+chip.named+"')",80); }}function stopme(chipname){ if(brOK) { eval("chip="+chipname); if(chip.timer1!=null) { clearTimeout(chip.timer1) } }}function softhyads(){ if(navigator.appName.indexOf("Internet Explorer")!=-1) { if(parseInt(navigator.appVersion.substring(0,1))>=4) brOK=navigator.javaEnabled();mie=true; } if(navigator.appName.indexOf("Netscape")!=-1) { if(parseInt(navigator.appVersion.substring(0,1))>=4) brOK=navigator.javaEnabled(); } softhyads.named="softhyads"; softhyads.vx=vmin+vmax*Math.random(); softhyads.vy=vmin+vmax*Math.random(); softhyads.w=1; softhyads.h=1; softhyads.xx=0; softhyads.yy=0; softhyads.timer1=null; movechip("softhyads");}document.write('<div id="softhyads" style="height:49px;left:178px;position:absolute;top:1237px;width:70px; z-index:1000">');if (isflash>0){document.write("<EMBED src='" + flashurl + "' quality=high WIDTH='" + Wimg + "' HEIGHT='" + Himg + "' TYPE='application/x-shockwave-flash'></EMBED>");}else{document.write("<a href='" + url + "' target=_blank onmouseover=stopme('softhyads'); onmouseout=movechip('softhyads');>");document.write("<img src='" + pic + "' alt='" + alt + "' border=0 width='" + Wimg + "' height='" + Himg + "'></a>");}document.write("</div>");softhyads();</script> <table border="0"><td><p style="margin-top: -57px; margin-bottom: 0"><object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" id="Pdf1" width="730" height="606"><param name="_Version" value="327680"><param name="_ExtentX" value="19315"><param name="_ExtentY" value="16034"><param name="_StockProps" value="0"><param name="SRC" value="1.pdf"></object></td></tr></table>网上有个高手用了变通的方法,可以隐藏掉“另保存为”按钮了,真的感谢那位仁兄。同时用以下JS可以实现此网页禁用右键<script language="JavaScript"><!-- if (window.Event) document.captureEvents(Event.MOUSEUP); function nocontextmenu(){ event.cancelBubble = true event.returnValue = false; return false;} function norightclick(e){ if (window.Event) { if (e.which == 2 || e.which == 3) return false; } else if (event.button == 2 || event.button == 3) { event.cancelBubble = true event.returnValue = false; return false; } } document.oncontextmenu = nocontextmenu; // for IE5+document.onmousedown = norightclick; // for all others//--></script> <table border="0"><td><p style="margin-top: -57px; margin-bottom: 0"><object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" id="Pdf1" width="730" height="606"><param name="_Version" value="327680"><param name="_ExtentX" value="19315"><param name="_ExtentY" value="16034"><param name="_StockProps" value="0"><param name="SRC" value="1.pdf"></object></td></tr></table>我在jsp加这段代码,1.pdf也放在同级目录下 弱弱都问一下怎么不显示呢? could not get next iterator result 实现查询 Hibernate 查询ID EL表达式无效怎么回事?? JSF隐藏标签是什么 spring邮件服务? 大家都用什么IDE来开发web service 如果用,eclipse有什么插件可用吗 ? JavaBean中的构造函数带有参数怎么调用? 在struts下,使用什么标签实现多行文本区(textarea)? 我能找到java方面的工作么? JAVAEE API java list里面保存的是一个个数组,但数组里面中文为乱码,高分求救
public void doGet(HttpServletRequest req, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("--------------ReadFileServlet---");
String filename = "abc.doc";
String filepath = "\\oa\\upload\\package_method\\"; // 设置响应头和下载保存的文件名
response.setContentType("APPLICATION/msword");
response.setHeader("Content-Disposition", "inline");
// 打开指定文件的流信息
File f = new File("D:\\jsp\\oa\\upload\\package_method\\abc.doc");
java.io.FileInputStream fileIn = new java.io.FileInputStream(f); // 写出流信息
int i;
ServletOutputStream sos = response.getOutputStream();
int i_length = fileIn.available();
byte buf_1[] = new byte[i_length];
while (i_length > 0) {
fileIn.read(buf_1);
sos.write(buf_1);
i_length = fileIn.available();
}
sos.close();
fileIn.close();
}}
我用servlet来做,在显示之前IE还是弹出一个对话框,来让用户选择保存,打开和取消的操作。
楼主完全不用搞一个下载的组件啦,就用java操作DOC文件就可以了啦,点击链接的时候去读取一个doc文件,然后把读取到的数据显示到界面,只不过这里要熟悉java怎么操作doc了,只是给点建议,技术方面可以百度下去实现,不难的
如果使用控件(AxtiveX)可以做到仅打开(具体方案请自行查找你提供文件的类型对应方案)。
//禁止右键
document.body.oncontextmenu=function(oEvent){
if(document.all){
oEvent=window.event;
oEvent.returnValue=false;
}else{
oEvent.preventDefault();
}
}
<head>标题</head>
<body>
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="1.pdf">
</object> </body>
</html>
<script>
var brOK=false;
var mie=false;
var vmin=2;
var vmax=5;
var vr=1;
var timer1;
var softhyads;
var isflash=0; //是否为FLASH文件的漂浮 1=是 0=否
var pic="google.gif"; //图片的地址
var alt="谷歌Google广告"; //鼠标放在图片上时显示的提示文字
var url="http://www.google.com"; //图片链接的地址
var flashurl="http://"; //FLASH文件的路径
var Wimg=170; //图像的宽度
var Himg=65; //图像的高度
function movechip(chipname)
{
if(brOK)
{
eval("chip="+chipname);
if(!mie)
{
pageX=window.pageXOffset;
pageW=window.innerWidth;
pageY=window.pageYOffset;
pageH=window.innerHeight;
}
else
{
pageX=window.document.body.scrollLeft;
pageW=window.document.body.offsetWidth-8;
pageY=window.document.body.scrollTop;
pageH=window.document.body.offsetHeight;
}
chip.xx=chip.xx+chip.vx;
chip.yy=chip.yy+chip.vy;
chip.vx+=vr*(Math.random()-0.5);
chip.vy+=vr*(Math.random()-0.5);
if(chip.vx>(vmax+vmin)) chip.vx=(vmax+vmin)*2-chip.vx;
if(chip.vx<(-vmax-vmin)) chip.vx=(-vmax-vmin)*2-chip.vx;
if(chip.vy>(vmax+vmin)) chip.vy=(vmax+vmin)*2-chip.vy;
if(chip.vy<(-vmax-vmin)) chip.vy=(-vmax-vmin)*2-chip.vy;
if(chip.xx<=pageX)
{
chip.xx=pageX;
chip.vx=vmin+vmax*Math.random();
}
if(chip.xx>=pageX+pageW-chip.w)
{
chip.xx=pageX+pageW-chip.w;
chip.vx=-vmin-vmax*Math.random();
}
if(chip.xx>=680)
{
chip.xx=chip.xx-20;
chip.vx=-vmin-vmax*Math.random();
}
if(chip.yy<=pageY)
{
chip.yy=pageY;
chip.vy=vmin+vmax*Math.random();
}
if(chip.yy>=pageY+pageH-chip.h)
{
chip.yy=pageY+pageH-chip.h;
chip.vy=-vmin-vmax*Math.random();
}
if(!mie)
{
eval('document.'+chip.named+'.top ='+chip.yy);
eval('document.'+chip.named+'.left='+chip.xx);
}
else
{
eval('document.all.'+chip.named+'.style.pixelLeft='+chip.xx);
eval('document.all.'+chip.named+'.style.pixelTop ='+chip.yy);
}
//chip.timer1=setTimeout("movechip('"+chip.named+"')",80);
}
}function stopme(chipname)
{
if(brOK)
{
eval("chip="+chipname);
if(chip.timer1!=null)
{
clearTimeout(chip.timer1)
}
}
}function softhyads()
{
if(navigator.appName.indexOf("Internet Explorer")!=-1)
{
if(parseInt(navigator.appVersion.substring(0,1))>=4) brOK=navigator.javaEnabled();mie=true;
}
if(navigator.appName.indexOf("Netscape")!=-1)
{
if(parseInt(navigator.appVersion.substring(0,1))>=4) brOK=navigator.javaEnabled();
}
softhyads.named="softhyads";
softhyads.vx=vmin+vmax*Math.random();
softhyads.vy=vmin+vmax*Math.random();
softhyads.w=1;
softhyads.h=1;
softhyads.xx=0;
softhyads.yy=0;
softhyads.timer1=null;
movechip("softhyads");
}document.write('<div id="softhyads" style="height:49px;left:178px;position:absolute;top:1237px;width:70px; z-index:1000">');
if (isflash>0)
{
document.write("<EMBED src='" + flashurl + "' quality=high WIDTH='" + Wimg + "' HEIGHT='" + Himg + "' TYPE='application/x-shockwave-flash'></EMBED>");
}
else
{
document.write("<a href='" + url + "' target=_blank onmouseover=stopme('softhyads'); onmouseout=movechip('softhyads');>");
document.write("<img src='" + pic + "' alt='" + alt + "' border=0 width='" + Wimg + "' height='" + Himg + "'></a>");
}
document.write("</div>");
softhyads();
</script>
<td>
<p style="margin-top: -57px; margin-bottom: 0">
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" id="Pdf1" width="730" height="606">
<param name="_Version" value="327680">
<param name="_ExtentX" value="19315">
<param name="_ExtentY" value="16034">
<param name="_StockProps" value="0">
<param name="SRC" value="1.pdf">
</object>
</td>
</tr>
</table>网上有个高手用了变通的方法,可以隐藏掉“另保存为”按钮了,真的感谢那位仁兄。同时用以下JS可以实现此网页禁用右键
<script language="JavaScript">
<!--
if (window.Event)
document.captureEvents(Event.MOUSEUP);
function nocontextmenu()
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e)
{
if (window.Event)
{
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3)
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
}
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
//-->
</script>
<td>
<p style="margin-top: -57px; margin-bottom: 0">
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" id="Pdf1" width="730" height="606">
<param name="_Version" value="327680">
<param name="_ExtentX" value="19315">
<param name="_ExtentY" value="16034">
<param name="_StockProps" value="0">
<param name="SRC" value="1.pdf">
</object>
</td>
</tr>
</table>我在jsp加这段代码,1.pdf也放在同级目录下 弱弱都问一下怎么不显示呢?