注册 登录
编程论坛 J2EE论坛

[求助]上传文件的表单,怎么能提取出文件名呢?

juleitai 发布于 2007-11-05 11:46, 6340 次点击
<input type="FILE" name="yourFile" size="30">里面选择了一个文件,
比如本地的文件路径为:
D:/web/pic/test.jsp

我想在上传前就得到文件名,要怎么作?

另外,我想实现上传表单里还有一个标题的input,但是发现因为有文件域的表单里就会是这样的,<form action="" method="post" name="nsty" id="nsty" ENCTYPE="multipart/form-data">,多了ENCTYPE="multipart/form-data"这句话,导致接收表单的处理页String name = request.getParameter("name");不成功,取到的是空值,如果把那句话去掉,值可以取道,但是就不能完成上传

怎么能实现上传又能接收表单信息呢?

[此贴子已经被作者于2007-11-5 15:02:48编辑过]

8 回复
#2
suncf19852007-11-05 13:02

用javaScript 把文件名保存下来

#3
hardes2007-11-05 20:46

字符串截取撒

#4
purana2007-11-05 20:48

要自己去分析..
在目标页里..通过..获取request.getInputStream()来得到一个输入流..
然后读取到一个byte[]数组里..再还原成String再分析一下..

#5
purana2007-11-05 20:52
in=new DataInputStream(request.getInputStream());
byte[] buffer=new byte[formDataLength];
int byteRead=0;
int totalReadBytes=0;
while(totalReadBytes<formDataLength){
byteRead=in.read(buffer,totalReadBytes,formDataLength);
totalReadBytes+=byteRead;
}
String file=new String(buffer);
String saveFile=file.substring(file.indexOf("filename=\"")+10);
saveFile=saveFile.substring(0,saveFile.indexOf("\n"));
saveFile=saveFile.substring(saveFile.lastIndexOf("\\")+1,saveFile.indexOf("\""));

大概就是这样子..
#6
黄袖标2007-11-07 17:59
function getName(){
var myFile = document.getElementById("myFile").value;
var length = myFile.length;
var x = myFile.lastIndexOf("\\");
x++;
var fileName = myFile.substring(x,length);
document.getElementById("fileName").value = fileName;
}
#7
黄袖标2007-11-07 18:00
如果是在程序里直接用getfilename好了
#8
午夜屠猪男2007-11-11 22:24
String name = smart.getRequest().getParameter("name") ;
#9
glamey2007-11-12 10:05
你用struts里边的fileUPload自带就有获取文件名称的函数。
好好看看文档。没什么坏处,别只想把东西给做出来,应该深刻的理解其中的东西,不明白的东西,千万不要写在自己的代码中。
1