文件上上传功能:
前提:”共享文件设置在另一台服务上“ 问题一:服务器端:指定路径下的文件已经存在但是用"File.exists()"这个方法判断返回的确是false问题二:
本地进行文件上传,一切正常,共享文件夹能写,共享文件件内的文件可读,文件正常上传,
但是在服务器上进行上传,共享的文件夹不能写,共享文件夹内的文件不可读,文件上传失败,
前提:”共享文件设置在另一台服务上“ 问题一:服务器端:指定路径下的文件已经存在但是用"File.exists()"这个方法判断返回的确是false问题二:
本地进行文件上传,一切正常,共享文件夹能写,共享文件件内的文件可读,文件正常上传,
但是在服务器上进行上传,共享的文件夹不能写,共享文件夹内的文件不可读,文件上传失败,
问题二:你可以确定你权限够了吗?不是public权限吧,我觉得你的权限还是不够。在服务器上把文件的权限给修改成anynoe试一试。我单词好像打错了你就试试吧。
看看我的签名吧。嘿嘿
File fsFile = new File(fileServerDir, "dummy.txt");//文件服务器的路径 显示是正确的if (fsFile.exists()){// 这个地方返回的是false
为什么是false呢?}
资料出自:http://blog.sina.com.cn/s/blog_656977f401014p2x.html URL serverUrl = new URL(http://ip:port/xxx/xxx/filename);
HttpURLConnection urlcon = (HttpURLConnection) serverUrl.openConnection();
String message = urlcon.getHeaderField(0);//文件存在‘HTTP/1.1 200 OK’ 文件不存在 ‘HTTP/1.1 404 Not Found’
if (StringUtils.hasText(message) && message.startsWith("HTTP/1.1 404")) {
不存在 }
是的 我就是在WINDOWS开了个共享文件夹,然后就往文件夹里面写文件
我上面的路径就是共享文件的路径 是\\192.168.1.1\testfile
我跟断点都是看到路径是对的 但是一执行fsFile.exists() 也就是共享文件的路径 就说是false
这是怎么回事呢?
我想问问 \\192.168.1.1\testfile 就是这样的路径不行吗
testfile 是我的共享文件
public static void main(String[] args) {
File file = new File("\\\\192.168.1.75\\asdf\\a.txt");
System.out.println(file.exists());
}我在我的电脑上创建了一个asdf的共享文件夹,打印结果为true
看你的文件路径是否正确,如果你是读取的\\192.168.1.1\testfile请考虑转义符
\\\\192.168.1.75\\asdf\\a.txt 像你的这样的路径 我也是这么改的
但是 System.out.println(file.exists()); 还是false
能在帮忙看看是什么地方出问题了吗?
我的思路是 : A 电脑 B 电脑 C 电脑 A 是客户端 B 是服务器(程序运行) C 是文件保存
现在 A 访问 B 服务器(程序画面) 选择一个文件上传(文件在A电脑里)到B ,在 B 上有个临时存储文件的地方(这个步骤OK), B 到 C (需要找到C的路径)这个就是问题所在,程序中截取的路径(断点截取查看的路径)在 C 上可以找到,但是用 file.exists() 就是false (C 电脑中我建了一个共享文件 就是想把B 中的文件放到这里)以上就是我的做法 ,希望大家多帮我想想 那个地方有问题,小女真的很急呀
这个我懂的。
哥们别误导妹子行不?谁告诉你 192.168.1.1 这玩意一定是 路由地址的? 还有广播IP怎么算?子网掩码都没有,你就全知道了?还鄙视人家的网管。。妹子,你这样直接\\IP\文件 的 访问 我还真没用过,也不确定行不行,,,,,不过既然是WIN下,你可以试试将你的共享文件夹做一个磁盘映射,映射到本地
看看这个吧资料来源:http://blog.csdn.net/chenleicom/article/details/6697260
用jcifs-0[1].8.3.jar这个包帮助实现,跟直接new File(路径)比较相似
看看这个吧资料来源:http://blog.csdn.net/chenleicom/article/details/6697260
用jcifs-0[1].8.3.jar这个包帮助实现,跟直接new File(路径)比较相似
我在判断文件是不是存在就处问题了
文件的路径我都看了好几遍了
File file = new File("\\\\192.168.1.75\\gx\\test.txt");
文件都是这样改了
java 输出后的结果是
\\192.168.1.75\gx\test.txt
这就是转译的结果吧?
现在就是路径我觉得对 但是文件存在判断就是不存在
在一个 你说的权限是怎么回事呀?
是不是给这个共享文件的权限呀? 那都应该给什么权限呢?是(Administrator,还是电脑名,还是数据库名)以上的我都给这个共享文件了
2.看看应用服务器和程序部署的服务器之间能不能ping通,可不可以相互访问和共享.
3.然后在你本机看看能不能访问到那个路径的文件,如果可以再到服务器看看能不能访问
WEB服务器 ping 我的文件存储服务器不通
是不是应为这个呀 ?
但是我有一个疑问就是 用户这个事,
我访问B 只是通过WEB 程序访问,这个用户是放在B 中的数据库中的一个用户而已(也就是WEB应用中的一个用户)
我现在不是很清楚 B-->C 用户是谁?
不知道我描述的清楚不谢谢你 abstruct 一直帮我再看这个问题。
那么B 进C 也是administrator 是这么理解吧那么在C中 administrator 是最大权限的用户
所以 C 中的共享文件 一定会给administrator 读写的权限
(我都查看了共享文件夹 它有administrator 这个用户的读写权限)
1 那么是不是可以说 这个问题和权限无关了呢?
2 上面有人说 ping 这个问题 我现在就是 A--> B 能ping 通
B--->C ping 不通 是不是这个问题导致我的文件判断说是不存在呢
现在还没有到流写文件,就已经不能在往下走了。
我是帮abstruct问的..
测试成功,环境是:
我的电脑win7系统( 192.168.0.54 )
共享文件的主机是XP系统192.168.0.100服务器开启来宾账户,共享文件设置读写权限
共享文件为XP机器 192.168.0.100上total文件夹下的1.txt文件public class TestFileGongXiang {
public static void main(String[] args) throws MalformedURLException, SmbException {
// SmbFile file = new SmbFile("smb://guest: @192.168.0.100/total/1.txt");
String filepath = "\\\\192.168.0.100\\total\\1.txt";
File file = new File(filepath);
System.out.println(filepath);
if(file.exists()){
System.out.println(true + " "+ file.getName());
}else{
System.out.println(false);
}
}
}运行结果:
\\192.168.0.100\total\1.txt
true 1.txt
是不是服务器上有guests 才是来宾账户账户呀
这个我已经有了呀
我之前测试的时候,新建的1.txt文件在工作机上一开始也不能访问到
一直是false,但是我把访问的文件名改成
\\\\192.168.0.100\\total\\1.txt.txt
竟然就能得到文件了,可能是因为公司 电脑系统的问题,显示的明明是1.txt文本文件
访问的时候却还要多加个.txt
表示很灵异
一个是权限问题。
一个是网络问题。。
超过这个二个问题的话
“在IT界,除了天方夜谭的技术,所有的问题我都能解决,我解决不了的,你找别人也木有用”某位CEO说的嘎嘎
现在你说的 是我的问题A -> B (服务器) 这个OK了
现在主要的问题是 B--> C(文件服务器)有问题
还是说找不到文件! 权限 读写都加了 guests 也都有加了 还是不好用。
我再问下 我映射了一个新的盘符叫 Z
那么程序方面 我的地址怎么样写呢?
以前是\\\\192.168.2.100\\test\\1.txt
192.168.2.100 是我的文件电脑IP
现在是不是改成 服务器的IP 比如
\\\\192.168.2.160\\Z
这样修改呀?
2)共享文件夹要有写权限
上面大家说的也是对的,文件的权限必须给的
读写权限也要给
我的问题主要是tomcat上
把tomcat 设置为域用户启动就好了
谢谢大家的帮忙!