input type="file" 的文件名怎么取?

[复制链接]
查看11 | 回复5 | 2013-12-6 13:59:43 | 显示全部楼层 |阅读模式
input type="file" 的文件名怎么取?

我用getParameter(name);
获得的是一个null.
null文件里边是有内容的,只是文件名取不到,
请问一下这个地方该如何取??
比如

现在我想上传一个文件123.txt
那么我如何取到这个123.txt的名字?
我在做一个上传的文件的东西,现在上传到指定目录的文件名字是null啊,不知道如何改!!高手帮帮忙!
谢谢了!
回复

使用道具 举报

千问 | 2013-12-6 13:59:43 | 显示全部楼层
唉,一天了,没人理我啊!!!
回复

使用道具 举报

千问 | 2013-12-6 13:59:43 | 显示全部楼层
这样做是没问题的,name得到的应该是路径,包括文件的名字!
你在看看吧!
回复

使用道具 举报

千问 | 2013-12-6 13:59:43 | 显示全部楼层
你可以试着引入jspsmart.upload这个工具来实现文件上传,比较方便。
action的写法:
//新建一个SmartUpload对象

SmartUpload su = new SmartUpload();



// 上传初始化

su.initialize(getServlet().getServletConfig(),request,response);



// 设定上传限制

// 1.限制每个上传文件的最大长度。

su.setMaxFileSize(30000);



// 2.限制总上传数据的长度。

su.setTotalMaxFileSize(30000);



// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。

su.setAllowedFilesList("doc,txt&quot

;



// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。

try {

su.setDeniedFilesList("exe,bat,jsp,htm,html&quot

;


} catch (ServletException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}



// 上传文件


su.upload();




// 将上传文件全部保存到指定目录



String folder = "jie";//保存文件的文件夹名

String filePath = "/"+folder+"/";

//String filePath = "/192.168.0.66/D:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/"+folder+"/";//取当前系统路径

//String filePath = "\\\192.168.0.66\\"+folder+"\\";//取当前系统路径

java.io.File myFilePath=new java.io.File(filePath);

if(!myFilePath.exists()){

System.out.println("创建文件夹,myFilePath:"+filePath);


myFilePath.mkdir();

}

System.out.println("取当前系统路径:"+filePath);

// 利用Request对象获取参数之值

System.out.println("TEST="+su.getRequest().getParameter("TEST&quot

);

// 逐一提取上传文件信息,同时可保存文件。


com.jspsmart.upload.File file = su.getFiles().getFile(0);


//显示当前文件信息


System.out.println("文件长度(Size):"+
file.getSize());

System.out.println("文件名(FileName):" +file.getFileName());

System.out.println("文件扩展名(FileExt):"+file.getFileExt());

System.out.println("文件全名(FilePathName):"+file.getFilePathName());




su.save(filePath);//上传文件

//su.uploadInFile(filePath);

// 将文件改名另存(D盘下)

String newFileName = "jessiexxb."+file.getFileExt();


file.saveAs(filePath+newFileName);

//file.saveAs(filePath+file.getFieldName());
jsp页面:

上传:





这样就可以实现文件上传了。
回复

使用道具 举报

千问 | 2013-12-6 13:59:43 | 显示全部楼层
最初由 moonstrike 发布
[B]input type="file" 的文件名怎么取?

我用getParameter(name);
获得的是一个null.
null文件里边是有内容的,只是文件名取不到,
请问一下这个地方该如何取??
比如

现在我想上传一个文件123.txt
那么我如何取到这个123.txt的名字?
我在做一个上传的文件的东西,现在上传到指定目录的文件名字是null啊,不知道如何改!!高手帮帮忙!
谢谢了! [/B]

request.getParameter(name);会是null,不应该吧,
----------------

request.getParameter("thefile&quot

;
我就是这样做的,可以取到的
---------
如果你上传的是一个123.txt那么是带路径的,要得到123.txt的话最好用个js来解决,刚好我原来写过一个
[PHP]
function charCodeAtTest(aa,bb){//aa代表原名,bb用两个反斜杠代替页面好像会屏蔽这个杠
var str = aa; //初始化变量。
var len =0;
var ll=aa.length;
var i,n;
len = str.lastIndexOf(bb);

//声明变量。
n = str.substring(len,ll);//获取位置 n 上字符的 Unicode 值。
return(n);
//返回该值。就是123.txt
}
[/PHP]
回复

使用道具 举报

千问 | 2013-12-6 13:59:43 | 显示全部楼层
request.getParameter("name");
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行