图片上传保存位置选择

我们经常做的网站不免要传一些文件或者图片到服务器端保留并在前端显示,这就要考虑到图片的上传位置了,我们一般将其保存在加载这个工程的的目录中,即这个工程所在的上一级目录:之前用System.getProperty("user.dir");获取路径,但是这个路径是用户工程所在路径:例:用户的当前工作目录:C:\Users\Administrator\Workspaces\MyEclipse Professional\kedou,只能在本地运行,如果部署到服务器上就会出现路径找不到的错误了。这时我们应该用this.getServletContext().getRealPath("/");获取服务器的目录地址:例:D:\apache-tomcat-7.0.56\webapps\kedou,这样无论在本机或者在服务器都不会出现路径找不到的错误了!

1.首先我们就要获取到当前工程所在的目录:

System.getProperty("user.dir");//用户的当前工作目录:

File file = new File(System.getProperty("user.dir"));

2.获取工程所在位置的上一级目录:

String path = file.getParent()+File.separator+"upload";

3.判断是否有存储文件的文件夹,如果没有则新建:

File file = new File(path); 

if(!file.exists()) 

{ file.mkdirs(); }

4.之后就可以获取这个路径,并将文件上传进去或者获取了。



一些参数的获取和设置:

public static void main(String[] args){ 


   System.out.println("Java运行时环境版本:\n"+System.getProperty("java.version")); 


   System.out.println("Java 运行时环境供应商:\n"+System.getProperty("java.vendor")); 


   System.out.println("Java 供应商的URL:\n"+System.getProperty("java.vendor.url")); 


   System.out.println("Java安装目录:\n"+System.getProperty("java.home")); 


   System.out.println("Java 虚拟机规范版本:\n"+System.getProperty("java.vm.specification.version")); 


   System.out.println("Java 类格式版本号:\n"+System.getProperty("java.class.version")); 


   System.out.println("Java类路径:\n"+System.getProperty("java.class.path")); 


   System.out.println("加载库时搜索的路径列表:\n"+System.getProperty("java.library.path")); 


   System.out.println("默认的临时文件路径:\n"+System.getProperty("java.io.tmpdir")); 


   System.out.println("要使用的 JIT 编译器的名称:\n"+System.getProperty("java.compiler")); 


   System.out.println("一个或多个扩展目录的路径:\n"+System.getProperty("java.ext.dirs")); 


   System.out.println("操作系统的名称:\n"+System.getProperty("os.name")); 


   System.out.println("操作系统的架构:\n"+System.getProperty("os.arch")); 


   System.out.println("操作系统的版本:\n"+System.getProperty("os.version")); 


   System.out.println("文件分隔符(在 UNIX 系统中是“/”):\n"+System.getProperty("file.separator")); 


   System.out.println("路径分隔符(在 UNIX 系统中是“:”):\n"+System.getProperty("path.separator")); 


   System.out.println("行分隔符(在 UNIX 系统中是“/n”):\n"+System.getProperty("line.separator")); 


   System.out.println("用户的账户名称:\n"+System.getProperty("user.name")); 


   System.out.println("用户的主目录:\n"+System.getProperty("user.home")); 


   System.out.println("用户的当前工作目录:\n"+System.getProperty("user.dir")); 
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,上传图片保存到数据库可以通过以下步骤实现: 1. 创建一个包含图片信息的Java类,例如ImageInfo,其中包含图片的名称、类型、大小等属性。 2. 创建一个用于处理文件上传的Servlet,例如UploadServlet。在该Servlet中,可以使用Apache Commons FileUpload库来处理文件上传操作。 3. 在UploadServlet中,获取上传的文件流,并将其保存到服务器的指定位置。可以使用File类来创建目标文件夹和文件,并使用FileOutputStream将文件流写入目标文件。 4. 将图片信息保存到数据库中。可以使用JDBC或者ORM框架(如Hibernate、MyBatis)来操作数据库。根据ImageInfo类的定义,创建对应的数据库表,并将图片信息插入到表中。 下面是一个简单的示例代码: ```java // ImageInfo.java public class ImageInfo { private String name; private String type; private long size; // 其他属性和方法 // getter和setter方法 } // UploadServlet.java @WebServlet("/upload") public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取上传的文件流 Part filePart = request.getPart("file"); // "file"为前端表单中文件上传字段的名称 InputStream fileInputStream = filePart.getInputStream(); // 保存文件到服务器指定位置 String fileName = filePart.getSubmittedFileName(); String filePath = "/path/to/save/" + fileName; // 指定保存路径 File targetFile = new File(filePath); FileOutputStream fileOutputStream = new FileOutputStream(targetFile); byte[] buffer = new byte[1024]; int length; while ((length = fileInputStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, length); } fileOutputStream.close(); fileInputStream.close(); // 将图片信息保存到数据库 ImageInfo imageInfo = new ImageInfo(); imageInfo.setName(fileName); imageInfo.setType(filePart.getContentType()); imageInfo.setSize(filePart.getSize()); // 将imageInfo插入到数据库中 // 返回上传成功的提示信息 response.getWriter().println("文件上传成功"); } } ``` 请注意,上述代码仅为示例,实际应用中可能需要进行错误处理、文件大小限制、文件类型验证等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值