图片上传存储相对路径问题 10C

最近在项目中看到一个图片上传存到服务器中相对路径/upload下
他是直接File file = new File("/upload");
请问直接这样可以找到路径吗? 我测试到时候为何说找不到呢,
我记得以前到代码是先用request获取到项目路径再加上/upload的,
但是这里直接/upload如何去做存的操作呢

10个回答

那样写是可以的,表示相对程序目录的下一层upload下,但是问题是天知道它相对哪个目录,最好明确写出来,用request.getRealPath

用 file.getAbsolutePath() 可以输出它的绝对路径

StackTc
StackTc 回复guoxuliang_123: 绝对路径我知道可以,就是经常从程序看到这样的相对路径,既然他们写了 说明程序没问题的,但是我运行了 又有问题
一年多之前 回复
guoxuliang_123
guoxuliang_123 可以试着把路径写全,写成绝对路径试试
一年多之前 回复
showbo
支付宝加好友偷能量挖 正解。。
一年多之前 回复

你这样找是跟目录,可以写上绝对路径。

String extend = worker.getPhoto().substring(worker.getPhoto().lastIndexOf("."));// 文件的扩展名
String folder = "/" + Globe.UPLOAD_FOLDER + "/" + worker.getUser().getUserName() + "/" + Globe.WORKER_FOLDER + "/";// 存放上传文件的目录
web.file.createFolder(getBase(request) + folder);// 创建文件夹,getBase(request);获得项目的物理路径(在磁盘中的位置)
String imgPath = folder + web.tool.getNowDate(2) + extend;// 产生新图片的相对路径(不带盘符的)
web.file.copyFile(getBase(request) + worker.getPhoto(), getBase(request) + imgPath);// 上传文件(这里只是复制了,因为上传的事情之前已经完成了)
worker.setPhoto(imgPath);// 这个路径是插入数据库的
worker = workerDao.add(worker);// 给数据库插入一条记录

查询的时候就能获取插入数据库的路径了,
希望lz能理解这段逻辑!

如果你用的是Tomcat服务器的话, 直接去Tomcat解压问价中就能找到upload文件夹,这个文件夹下存放的就是File file = new File("/upload");文件

StackTc
StackTc 你这样不行的把,我运行 springboot他说找不到 文件夹
一年多之前 回复

上传图片时我有一次是这样写的
String path = session.getServletContext().getRealPath("upload");
String filename = UUID.randomUUID() + file.getOriginalFilename();
File targetFile = new File(path, filename);
这样图片会默认放到Tomcat部署路径的upload目录下,不是想要的位置,所以不得不把path改成绝对路径,你也可以试试

其实无论服务器端怎么写,只要服务器端程序有合适的算法在使用时能够定位都是可以的。

filePhoto.SaveAs(Server.MapPath("~/upload/" + fileName));

使用绝对路径吧,或者你看看存在服务器上的位置,把应用路径补充完整

照片: width=100 height=100>

还是用绝对路径吧,这样稳妥一点。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!