日期:2014-05-17  浏览次数:20667 次

图片上传到服务器之后,怎么获取相对路径插入数据库??

在数据库中只显示图片的相对路径 如 pic/121223112121.jpg 这个样子。。。。



------解决方案--------------------
Java code

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);// 给数据库插入一条记录

------解决方案--------------------
上传到服务器后读路径应该就是件简单的事情了 private String uploadFile() {
// 取得上传的文件夹路径
String uploadFolderPath = ServletActionContext.getServletContext()
.getRealPath(ConCst.UPLOAD_FOLDER_PATH);
File uploadFolder = new File(uploadFolderPath);
// 假如文件夹不存在
if (!uploadFolder.isDirectory()) {
// 新建文件夹目录
uploadFolder.mkdirs();
}

String destFileName = String.valueOf(new Date().getTime())
+ uploadFileFileName.substring(uploadFileFileName.lastIndexOf("."),
uploadFileFileName.length());
// 新建目标文件
String destPath = uploadFolderPath + "/" + destFileName;
File dest = new File(destPath);

// 拷贝文件
FileUtil.copyFileByBuffer(uploadFile, dest);

return destFileName;
}
这是上传文件到服务器的代码,包括了路径的取得【 String destFileName = String.valueOf(new Date().getTime())
+ uploadFileFileName.substring(uploadFileFileName.lastIndexOf("."),
uploadFileFileName.length());】