文件的路径名取错的问题(17分)

  • 主题发起人 主题发起人 ncyqhhf
  • 开始时间 开始时间
N

ncyqhhf

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]
就是我代码中有这样一句:
FileInputStream Fin = new FileInputStream(filepath);
其中filepath是文件的绝对路径名(该路径名是用户自己选择输入的),在服务端执行是没有任何问题的,但在客户端执行却提示找不到该文件,原因是在客户端运行的时候他还是取的服务器上路径名。
现在我想让他在客户端运行取客户路径名,不让他取服务器路径名。
谢谢大家![red][/red]
 
怎么可能???
你所说的客户端运行是怎么个运行方式?
如果可以的话,请把相关代码贴出来。

 
用IE浏览的呀?服务器上运行没任何问题,在客户端就出现找不到该文件(估计他默认就是服务器的路径):
<%

filepath = (String)request.getParameter("load");
if((filepath==null)||(filepath.length() < 1))
{
//没有选择了文件路径
//System.out.println("选择文件的路径为空");
}
else
{
//选择了文件路径
System.out.println("选择的路径: "+filepath);
//转换文件路径格式
for(int i=0;i<(int)filepath.length();i++ )
{
filepath_byte = filepath.substring(i,i+1);
if (filepath_byte.equals("//"))
{
filepath_new = filepath_new + "////";
}
else
{
filepath_new = filepath_new + filepath_byte;
if (filepath_byte.equals("."))
{
filetype=".";
}
else
{
filetype = filetype + filepath_byte;
}
}
}
System.out.println("选择的路径(转换后): "+filepath_new );

File files = new File(filepath);
filename = files.getName();




FileInputStream Fin = new FileInputStream(filepath_new);

//连接数据库
conn = tools.connectDatabase("oraclePool");
stmt = tools.getStatement(conn);
boolean defaultCommit = conn.getAutoCommit();
conn.setAutoCommit(false);

try
{
//自动生成编号
ResultSet rs1 = tools.execQuery(stmt,"SELECT to_number(max(to_number(code))+1) FROM hhf");
while (rs1.next())
{
maxcode = rs1.getString(1);
System.out.println("maxcode1: "+maxcode );

}

if((maxcode==null)||(maxcode.length() < 1))
{
maxcode = "1";
}
//插入记录
tools.execBatchUpdate(stmt,"delete from hhf where code='"+maxcode+"';INSERT INTO hhf VALUES ('"+maxcode+"',EMPTY_BLOB(),'"+filename+"','"+filetype+"',"+Fin.available()+")");
ResultSet rs = tools.execQuery(stmt,"SELECT blob FROM hhf WHERE code='"+maxcode+"' FOR UPDATE");


while (rs.next())
{
java.sql.Blob blob = rs.getBlob(1);
BufferedOutputStream out1 = new BufferedOutputStream(((oracle.sql.BLOB)blob).getBinaryOutputStream());

BufferedInputStream in = new BufferedInputStream(new FileInputStream(filepath));
int c;
while ( (c = in.read()) != -1)
{
out1.write(c);

}
in.close();
out1.close();
conn.commit();

conn.setAutoCommit(defaultCommit);

}

} catch (Exception ex)
{
conn.rollback();
throw ex;
}
}

%>
 
晕,怎么可能这样来实现。
如果这样能够取到客户端的文件,那还没有安全性可言啊!
应该是用表单来提交文件内容的
<input type=file name=file1>
自己去看一下关于表单提交方面的东西。
 
好的 谢谢 楼上的朋友 我去看看
 
后退
顶部