java web项目java后台获取前台js上传文件的路径

java web项目java后台获取前台js上传文件的路径,第1张

如果通过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怎么提取绝对路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9321209.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存