
如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:
DiskFileItemFactory difif = new DiskFileItemFactory();dififsetSizeThreshold(321024);dififsetRepository(new File(tmpDir)); //
用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif);
sfusetSizeMax(MAX_SIZE);
List fileList = sfuparseRequest(request);
if ( fileList == null || fileListsize() == 0) { throw new Exception("
导入文件不存在,请检
查");} else { File upLoadFile = null; Iterator fileIterator = fileListiterator();
//得到所有上传的文
件 while (fileIteratorhasNext()) { FileItem fileItem = (FileItem)fileIteratornext(); //
取得上传文件
名 if (fileItemgetContentType() == null) { } else {
//
此为路
径 String path = fileItemgetName(); String t_ext = pathsubstring(pathlastIndexOf("") + 1); //
根据系统时间生成上传后保存的文件
名 String prefix = StringvalueOf(SystemcurrentTimeMillis()); //
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下 String u_name = tmpDir + Fileseparator + prefix + "" + t_ext; //
开始保存文
件 upLoadFile = new File(u_name); fileItemwrite(upLoadFile); } } }
方法1:在下载链接上右键,选择“下载链接文件为”,然后在出现的对话框里选择要存储的位置。
方法2:在safari的“偏好预置”->“通用”->“将下载的文件存储到”里更改默认存储路径。
把下面代码复制下来, 保存为 copyfolderasp, 修改里面的测试路径, 在源路径下加几个文件, 目标路径清空, 然后在IIS下访问即可测试:
--------------------------------------------
<script language="javascript" runat="server">
//为源文件夹和目标文件夹赋值, 如果是相对路径, 使用 Servermappath() 函数转换成绝对路径, 若是绝对路径, 则直接赋值
var ps = Servermappath("/testfolder1"); //源路径
var po = Servermappath("/testfolder2"); //目标路径
var fso;
fso = new ActiveXObject("ScriptingFileSystemObject");
fsoCopyFolder(ps,po); //复制文件夹
</script>
---------------------------------------------
注意: 运行时如果提示被拒绝, 请查看文件夹的安全权限, 为IIS的匿名用户(默认是IUSR_机器名)赋予目标文件夹的写权限 或直接将目标路径设成everyone可写
<script type="text/jscript"; language="javascript">
var html = windowlocationhref; var host = windowlocationhost; var o = htmlreplace(host,""); alert(o); </script>
上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的:
function getPath(obj) { if (obj) { if (windownavigatoruserAgentindexOf("MSIE") >= 1) { objselect(); return documentselectioncreateRange()text; } else if (windownavigatoruserAgentindexOf("Firefox") >= 1) { if (objfiles) { return objfilesitem(0)getAsDataURL(); } return objvalue; } return objvalue; } } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!?
引用至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了
引用至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案:
一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义
除非像上面所说的文件上传预览,还有那么点用处
我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。
如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:
DiskFileItemFactory difif = new DiskFileItemFactory(); dififsetSizeThreshold(321024);dififsetRepository(new File(tmpDir)); // 用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif); sfusetSizeMax(MAX_SIZE); List fileList = sfuparseRequest(request); if ( fileList == null || fileListsize() == 0) { throw new Exception(" 导入文件不存在,请检 查");} else { File upLoadFile = null; Iterator fileIterator = fileListiterator(); //得到所有上传的文 件 while (fileIteratorhasNext()) { FileItem fileItem = (FileItem)fileIteratornext(); // 取得上传文件 名 if (fileItemgetContentType() == null) { } else { // 此为路 径 String path = fileItemgetName(); String t_ext = pathsubstring(pathlastIndexOf("") + 1); // 根据系统时间生成上传后保存的文件 名 String prefix = StringvalueOf(SystemcurrentTimeMillis()); // 保存最终的文件完整路径,保存在工程根目录下的Upload目录 下 String u_name = tmpDir + Fileseparator + prefix + "" + t_ext; // 开始保存文 件 upLoadFile = new File(u_name); fileItemwrite(upLoadFile); } } }
html的/,标示是网站的根目录,php的那个/,表示系统的根目录。php一般这么搞。dirname(__FILE__);用这个获取当前文件所在的目录,然后根据这个目录,向前或者向后定位。比如在你编辑的这个文件下面有个aphp,你可以这么写。require_once(dirname(__FILE__)'/aphp');要是比如,你现在编辑的文件是ctrl目录下,但是你想包含的文件在和ctrl同级别的一个目录server下,就这么写require_once(dirname(__FILE__)'//aphp');
以上就是关于java web项目java后台获取前台js上传文件的路径全部的内容,包括:java web项目java后台获取前台js上传文件的路径、苹果浏览器中怎样js 获取本地文件路径、用JS怎么提取绝对路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)