JSP图片路径问题

xiaohouxiaogui 2008-12-11 02:30:46
我是把图片直接转化成二进制流放到数据库,在我本机上可以把图片写进数据库,但是挂在学校服务器上测试的时候发现:在别人的机器上一管理员身份登录后不能把图片写进数据库,报的是某某图片路径找不到...
这是我的代码:
Class.forName("com.mysql.jdbc.Driver");
//加载驱动程序类
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/penews","root","qw");
//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。
Statement stmt=con.createStatement();
//建立Statement对象
//request.setCharacterEncoding("gb2312");
String Title=request.getParameter("Title");
Title=new String(Title.getBytes("8859_1"),"gb2312");

String Content=request.getParameter("Content");
Content=new String(Content.getBytes("8859_1"),"gb2312");

String Time=request.getParameter("Time");
Time=new String(Time.getBytes("8859_1"),"gb2312");

String Source=request.getParameter("Source");
Source=new String(Source.getBytes("8859_1"),"gb2312");

String Picture=request.getParameter("Picture");
Picture=new String(Picture.getBytes("8859_1"),"gb2312");

//获得所要显示图片的标题、存储路径、内容,并进行中文编码
FileInputStream str=new FileInputStream(Picture);

String sql="insert into commonnews(title,content,time,source,picture) values(?,?,now(),?,?)";

PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,Title);
pstmt.setString(2,Content);
//pstmt.setString(3,Time);
pstmt.setString(3,Source);
pstmt.setBinaryStream(4,str,str.available());

pstmt.execute();
//将数据存入数据库
在网上查了查,发现估计是在FileInputStream str=new FileInputStream(Picture);这个地方出了什么乱子

总之,就是,在我本机上可以上传图片,但是在其他机器上登陆总是说图片的路径不对~!~!~!~


大家帮我想想,本人一直在线,问题彻底解决,本人将砸上200分~!~!~
...全文
1174 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
martinyuan 2008-12-11
  • 打赏
  • 举报
回复
重点关注网络环境差异.
flylovejings 2008-12-11
  • 打赏
  • 举报
回复
mark!
ahlon 2008-12-11
  • 打赏
  • 举报
回复
你是hard code本地的图片地址吧
那要看你是web程序还是application程序
fangyuan303687320 2008-12-11
  • 打赏
  • 举报
回复
你个人电脑上的那个路径是绝对,上传到服务器上就应该用相对路径
[Quote=引用 17 楼 hanxueyuwulei 的回复:]
本机是XP
服务器是是UNIX?
或相反
我们开发也碰到过这种问题
UNIX和XP路径是不一样的 \\
[/Quote]
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
恩,你说的很对....正在解决
大家还有什么方法吗,分不够多吗?
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
不是,都是xp
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
不是,都是xp
lanzhengwu 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xiaohouxiaogui 的回复:]
我知道自己错在哪儿了,我可以先把图片上传到server特定的目录下,但是我的执行过程是:“浏览”一下,选中图片,插入到数据库,等于图片还是在管理员的本机上,还是没法识别啊,难道我在server下有一个文件夹,我把E:\图\车\070110ag0048.jpg 上传进去,然后再插入就成功了吗?
不是很明白,大家有源码么,发一下
[/Quote]
看来LZ对上传理解不多. ..
点击浏览-选中图片-上传(这里程序实现)->假如上传到你服务器的e:/picture下 ..
上传成功后返回你上传图片的地址如:e:/picture/aa.jpg
然后直接FileInputStream str=new FileInputStream("e://picture//aa.jpg");
hanxueyuwulei 2008-12-11
  • 打赏
  • 举报
回复
先告诉俺是不是2个操作系统
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
还是没解决~!~!呜呜
hanxueyuwulei 2008-12-11
  • 打赏
  • 举报
回复
本机是XP
服务器是是UNIX?
或相反
我们开发也碰到过这种问题
UNIX和XP路径是不一样的 \\
恋空 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lanzhengwu 的回复:]
具体怎么做 ??
就是用JAVA写一个上传的方法 ..先在客户端上传图片啊 ...
把图片放在指定的地方 ..再执行你的操作..
[/Quote]up
duoduo6153 2008-12-11
  • 打赏
  • 举报
回复
要先把图片上传到服务器(至少要缓存在服务器上,不需要持久化),然后再写入数据库,程序也很好写啊。
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
我知道自己错在哪儿了,我可以先把图片上传到server特定的目录下,但是我的执行过程是:“浏览”一下,选中图片,插入到数据库,等于图片还是在管理员的本机上,还是没法识别啊,难道我在server下有一个文件夹,我把E:\图\车\070110ag0048.jpg 上传进去,然后再插入就成功了吗?
不是很明白,大家有源码么,发一下
lanzhengwu 2008-12-11
  • 打赏
  • 举报
回复
具体怎么做 ??
就是用JAVA写一个上传的方法 ..先在客户端上传图片啊 ...
把图片放在指定的地方 ..再执行你的操作..
laogou2 2008-12-11
  • 打赏
  • 举报
回复
同意6楼的
lanzhengwu 2008-12-11
  • 打赏
  • 举报
回复
LS的有理 ..当前服务器只能读取当前所属电脑中的图片. .
你从另外一台电脑访问的话,他还是会在服务器所属的电脑找图片,要不你在
你电脑E:\图\车\070110ag0048.jpg 放上文件 ..肯定 行的..
顶 LS 先上传才行. ..
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
你可以告诉我具体改怎么做吗?最好给我提供点源代码
kao331431214 2008-12-11
  • 打赏
  • 举报
回复
LZ
要放在服务器上啊~~
xiaohouxiaogui 2008-12-11
  • 打赏
  • 举报
回复
能提供点代码参考一下吗?谢谢!~~~~
加载更多回复(7)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧