请教:如何在JSP中保存一个文件到指定的路径里(打开保存文件对话框):等待,另开贴给分!

kw123 2004-09-08 10:05:09
得到一串数byte类型,写入指定文件(保存文件对话框所指定的文件);
如何实现?

另开贴散分!
...全文
577 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxf9720 2004-10-06
  • 打赏
  • 举报
回复
不好意思,回错贴了
zxf9720 2004-10-06
  • 打赏
  • 举报
回复
搞定了,换了种方式,呵呵,谢谢各位! :)
kw123 2004-09-14
  • 打赏
  • 举报
回复
没有下文!!
kw123 2004-09-10
  • 打赏
  • 举报
回复
FileDialog fileDialog=new FileDialog(m_Frame,"另存什么文件?");//此处 m_Frame的详细些
fileDialog.setFile("*.doc");
fileDialog.setDirectory(".");
fileDialog.show();
String strSaveFile;
if((strSaveFile=fileDialog.getFile())!=null)
{
m_FileName.setText(strSaveFile);
m_Directory.setText(fileDialog.getDirectory());
}
else
{
m_FileName.setText("取消");
m_Directory.setText("");
}
kw123 2004-09-09
  • 打赏
  • 举报
回复
:to
gjd111686(数字金刚)
m_Frame??
chancelin 2004-09-09
  • 打赏
  • 举报
回复
byte[] b=new byte[4096]; //要输出的字节流
String outFileName = "filename";// 默认的文件名字和路径
response.setContentType("application/octet-stream");// 设置响应头
response.setHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");//提示IE保存文件,弹出保存文件对话框

java.io.OutputStream pw = response.getOutputStream();
pw.write(b,0,b.length); //输出字节流
pw.close();
vampirewp 2004-09-09
  • 打赏
  • 举报
回复
试试这个,用一个单独的JSP页面来作处理,传文件名和路径过来
<%
// 得到文件名字和路径
String fileName = "HousePrice.xls";
String filePath = "";

if(request.getParameter("fileName")!=null){
fileName = request.getParameter("fileName");
}
if(request.getParameter("filePath")!=null){
filePath = request.getParameter("filePath");
}

String realPath = request.getRealPath("");

filePath = realPath + filePath;
System.out.println("fileName is:"+fileName);
System.out.println("filePath is:"+filePath);

// 设置响应头和下载保存的文件名
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");

// 打开指定文件的流信息
java.io.FileInputStream fileInputStream =
new java.io.FileInputStream(filePath + fileName);

// 写出流信息
int i;
while ((i=fileInputStream.read()) != -1) {
out.write(i);
}
fileInputStream.close();
out.close();
%>//这后面一定不能再有换行符,不然编译会报错
gjd111686 2004-09-09
  • 打赏
  • 举报
回复
是这个意思吗?
FileDialog fileDialog=new FileDialog(m_Frame,"另存什么文件?");
fileDialog.setFile("*.doc");
fileDialog.setDirectory(".");
fileDialog.show();
String strSaveFile;
if((strSaveFile=fileDialog.getFile())!=null)
{
m_FileName.setText(strSaveFile);
m_Directory.setText(fileDialog.getDirectory());
}
else
{
m_FileName.setText("取消");
m_Directory.setText("");
}
kw123 2004-09-09
  • 打赏
  • 举报
回复
我指定一个路径和文件名称是可以将其保存的!
现在目的就像我们常用的另存为的对话框那样指定sPathFujian+"/"+sFile

开始我想我FILEDIALOG实现,但一直没有办法!你们有何高招???


SaveFileAs(sFj,sPathFujian+"/"+sFile);


public void SaveFileAs(String sFj,String filename){
try
{
// FileDialog fd =new FileDialog(this,"SaveFile",FileDialog.SAVE);
// fd.show();
// String filename = fd.getDirectory() + fd.getFile();
File file1 = new File(filename);
FileOutputStream myFileoutputstream = new FileOutputStream(file1);
byte[] buffer ;
buffer= sFj.getBytes();
int chunk = buffer.length;
myFileoutputstream.write(buffer, 0, chunk);
myFileoutputstream.close();
}
catch(Exception e){

}
}
gjd111686 2004-09-09
  • 打赏
  • 举报
回复
m_Frame是JFrame对象的实例.
gjd111686 2004-09-09
  • 打赏
  • 举报
回复
<table border="0" cellpadding="0" cellspacing="0" width="80%">
<tr>
<td width="100%" valign="top">测试XMLHTTP</td>
</tr>
</table>
<br>
<table border="0" cellpadding="0" cellspacing="0" width="80%">
<tr>
<td width="100%" valign="top">
<input type="text" value="http://10.70.38.10:9002/System/Dot/Show.jsp?Id=1" id="URLID">
<input type="text" value="C:\\DownURL.doc" id="LocalURLID">
<input type="button" value="下载" onclick="DownURL(URLID.value,LocalURLID.value);">
</td>
</tr>
</table>
<br>
<div id=App style="border:1 solid #000000;background-color:#FFFFFF;height:200px;overflow:auto;width:80%;z-index:2" contentEditable></div>
<script>
function OpenFile(strFileName)
{
try
{
var WordApp=new ActiveXObject("Word.Application");
WordApp.Application.Visible=false;
var Doc=WordApp.Documents.Open(strFileName);
Doc.Activate();
Doc.Parent.Options.InsertedTextColor=4;
Doc.Parent.Options.InsertedTextMark=2;
Doc.Parent.Options.DeletedTextColor=4;
Doc.Parent.Options.DeletedTextMark=1;
Doc.TrackRevisions=true;
Doc.PrintRevisions=true;
Doc.ShowRevisions=true;
Doc.Application.UserName="";
var Range=Doc.Range();
Range.Select();
var Selection=WordApp.Selection;
Selection.Copy();
App.focus();
document.execCommand("Paste");
App.focus();
WordApp.DisplayAlerts=false;
Doc.Close();
WordApp.DisplayAlerts=true;
WordApp.Quit();
}
catch(e)
{
window.confirm(e);
}
}
function DownURL(strRemoteURL,strLocalURL)
{
try
{
var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
xmlHTTP.open("Get",strRemoteURL,false);
xmlHTTP.send();
var adodbStream=new ActiveXObject("ADODB.Stream");
adodbStream.Type=1;//1=adTypeBinary
adodbStream.Open();
adodbStream.write(xmlHTTP.responseBody);
adodbStream.SaveToFile(strLocalURL,2);
adodbStream.Close();
adodbStream=null;
xmlHTTP=null;
OpenFile(strLocalURL);
}
catch(e)
{
window.confirm("下载URL出错!");
}
//window.confirm("下载完成.");
}
</script>
<br>
<table border="0" cellpadding="0" cellspacing="0" width="80%">
<tr>
<td width="100%" valign="top">测试XMLHTTP</td>
</tr>
</table>
kw123 2004-09-08
  • 打赏
  • 举报
回复
当然是本地,从服务器中得到数据流
chancelin 2004-09-08
  • 打赏
  • 举报
回复
你是想把文件保存导服务器上?
HuaDongcn 2004-09-08
  • 打赏
  • 举报
回复
up
gjd111686 2004-09-08
  • 打赏
  • 举报
回复
byte[] pFileExtend=new byte[1024];
FileOutputStream pFileOutputStream=new FileOutputStream("F:\\Site_ColligateStatistic\\UploadFile\\"+strFileName);
pFileOutputStream.write(pFileExtend);
pFileOutputStream.close();
kw123 2004-09-08
  • 打赏
  • 举报
回复
?????????????

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧