当前位置: 代码迷 >> Java Web开发 >> [求助]上传文件的表单,怎么能提取出文件名呢?
  详细解决方案

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

热度:153   发布时间:2007-11-05 11:46:22.0
[求助]上传文件的表单,怎么能提取出文件名呢?
<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编辑过]

搜索更多相关主题的帖子: 表单  文件名  web  name  

----------------解决方案--------------------------------------------------------

用javaScript 把文件名保存下来


----------------解决方案--------------------------------------------------------

字符串截取撒


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
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("\""));

大概就是这样子..
----------------解决方案--------------------------------------------------------
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;
}
----------------解决方案--------------------------------------------------------
如果是在程序里直接用getfilename好了
----------------解决方案--------------------------------------------------------
String name = smart.getRequest().getParameter("name") ;
----------------解决方案--------------------------------------------------------
你用struts里边的fileUPload自带就有获取文件名称的函数。
好好看看文档。没什么坏处,别只想把东西给做出来,应该深刻的理解其中的东西,不明白的东西,千万不要写在自己的代码中。
----------------解决方案--------------------------------------------------------
  相关解决方案